First published 1983 by Pan Books Ltd,
Cavaye Place, London SW10 9PG
in association with Personal Computer News
987654321
©Robert Erskine, Humphrey Walwyn, Paul Stanley, Michael Bews
ISBN 0330 28260 3
Printed in Great Britain by
Richard Clay (The Chaucer Press) Ltd,
Bungay, Suffolk
This book is sold subject to the condition that it shall not,
by way of trade or otherwise, be lent, re-sold,
hired out, or otherwise circulated without the publisher’s prior consent
in any form of binding or cover other than that in which it is
published and without a similar condition including
this condition being imposed on the subsequent purchase
Contents
Minelay . 7
Fall-Guy . 11
Tug of War . 16
Horse Race . 20
Championship Boxing . 24
Motocross . 30
Critical Path Analysis . 34
Chomper . 39
Battleships . 44
Tanx . 49
Defend . 53
Flying Bomb . 58
Radio Power . 61
Scuba . 70
Endings . 77
Snap . 83
Paypackets . 87
Newmarket . 91
Hobday Expenses . 96
Ambush . 104
Numbers . 109
Top Trainer . 115
Biorhythms . 125
Aben . 128
Galaxians . 131
Sheep Dog Trials . 135
Picture Pairs . 139
Dam Busters . 145
0X0 .
Space Traffic .
Dam Eaters .
Buzzy Bee .
Heli-Bomber .
Grand Prix .
Giant Rats .
Postman .
Xmas Eve .
Morse Tutor .
Flying Geese .
Wordsum .
Asset Stripper .
Bricklayer ..
Dogfight .
Evolution 1 .
Evolution 2 .
Evolution 3 .
Exocet .
Energy Field .
Drag Racer .
Moonlander .
Anagrammatic .
Stellar Run .
Russian Roulette
Swordsman .
Hangman .
Roots .
Bulls and Cows .
Invaders .
Mushroom Invasion
Countabout .
149
152
156
160
164
168
173
177
181
185
190
192
195
205
208
213
219
225
231
234
240
244
247
250
255
257
262
267
272
275
280
283
Introduction
This book was born of the conviction that it was high time a
listings collection offered real value for money. You have in your
hands as complete a software library as can be crammed into close
on three hundred pages. We have pulled out all the stops to offer
you as varied, innovative and exciting selection of programs as
possible. There are arcade action games for those of you whose
fingers naturally twitch around the cursor control keys, tactical
games for the more cerebrally inclined, genuinely novel games as
well as classics of the genre, quizzes, tests of your mental agility,
party games and a leavening of utility and educational programs.
In short, for the price of a single cassette we’ve put together a
collection of sixty fully-developed programs which have been
exhaustively tested before being dumped straight to the printer.
This ensures the accuracy of the listings, so all you have to do is to
get your eager fingers flashing across the keyboard and faithfully
reproduce the programs on your screen.
A few words about the listings themselves. We have introduced
what we hope will prove to be a useful innovation to differentiate
the user-defined graphics from the rest of the code. Each time a
user-defined graphic appears in a program it is printed italic
capitals; e.g. A. This will hopefully ensure that the Earth will be
attacked by fully-fledged aliens rather than bewildering fleets of
capital ‘A’s! We should also point out that in order to get as many
programs as possible into the book we have extended the line of
the listings to forty-five characters, as opposed to the thirty-two
characters of the Spectrum screen. This simply means that you
should take extra care over the spaces to ensure that you get the
displays right.
Finally, we would like to extend our thanks to the team of
converters and checkers without whom this project would not have
been possible. Their selfless devotion to accuracy inspired us to
slave over hot keyboards into the midnight hour.
So now it’s up to you. A quick glance through the contents
pages reveals that the Earth is being threatened by anything from
an alien invasion fleet to a vampire cat! As usual, you are our only
hope, so get to the keyboard and go get ’em!
Minelay
Minelay is a maze game in which your hero runs about collecting golden
eggs and avoiding the deadly mines which are scattered randomly about
the maze. A fiendish little ‘minelayer’ scuttles around the screen in hot
pursuit. Contact with this persistent creature results in instant death.
Here is the good news. A number of axes are dotted around the playing
area which the player can pick up and carry around. Each axe can be •
used both to break through maze walls and also to fend off direct attacks
by the minelayer.
1 RANDOMIZE : BORDER 0: PAPER 0: INK 7: CL
S
5 REM @ P.Stanley (21.3.83)
10 60 SUB 9000
15 LET hs=0
20 GO TO 6030
50 BEEP .1,-10
55 LET 1i=3
60 PRINT AT 0,lZ;"BS Hi-score "ihs
100 PRINT AT yl,xl;" "; INK 6;AT y,x!a*: LET
y1=y: LET xl=x
110 LET x=x+(IN 57342=254)-(IN 57342=251): L
ET y=y+(IN 65273=253)-(IN 64510=254)
120 LET a=ATTR (y,x): IF SCREEN* <y,x)=" " T
HEN GO TO 700
122 IF a=7 THEN IF a*="C“ THEN GO TO 5000
125 IF a=7 THEN LET y=yl: LET x=xi
130 IF a=70 THEN BEEP .01,20: LET sc=sc+10:
PRINT INK 7;AT 0,6;sc: IF sc/500=INT (sc/50
0) THEN PRINT AT 0,12+li; FLASH 1 ;"B“: FOR q
=1 TO 5: BEEP .2,-30: NEXT g: PRINT AT 0,12+1
LET 1 i = 1 i +1
140 IF a=5 THEN GO TO 6000
150 IF a=63 THEN BEEP .1,10: LET a*="C"
700 PRINT AT my,mx >“ ”: IF RND >sk THEN PRIN
T AT myl ,mxlINK 5; "A"
705 LET myl=my: LET mxl=mx
710 LET my=my+(.5 AND my<y)-(.5 AND my>y): L
ET mx=inx+(.5 AND mx<x)-(.5 AND mx>x)
715 IF ATTR (my,mx>=6 THEN GO TO 6000
8 Minelay
720 PRINT AT my, rax; INK 5; BRIGHT
940 IF RNDC.2 THEN PRIhfT AT RND*18 + 2, RND*28
+15 INK 6; BRIGHT 1;ӣ": IF RND>.9 THEN PRIN
T INK 4! BRIGHT 15 AT RND*13 + 2,RND*28+1; " 6 "
999 GO TO 100
5000 IF y=l OR y=21 OR x=0 OR x=30 THEN GO T
O 125
5005 FOR -f =50 TO 0 STEP -5: BEEP .02,-f: NEXT
f
5010 LET a %="B“
5030 GO TO 130
5500 PRINT AT 0,12+li;" ": PRINT AT y,x;“ ‘:
LET y=2: LET x=l
5600 LET my=INT (RND*11)+10: LET mx=INT (RND*
13)+12: GO TO 100
6000 PRINT AT my,rax;” *: LET my=INT (RND*11)+
10: LET mx=(RND*13)+12: LET myl=my: LET mxl=m
x: IF a$="(7 n THEN LET aFOR f=0 TO 40
STEP 5: BEEP .04,T: NEXT -f : GO TO 700
6005 FRINT AT yl,xl; M ": FOR f=l TO 7: FOR g=
7 TO 0 STEP -l: PRINT INK g;*AT y,x5 ,, ff" : BEEP
• 02, g*-f : NEXT g: NEXT -f
6007 LET 1i=li-1: IF 1i<>0 THEN GO TO 5500
6010 FOR g=0 TO 60: NEXT g
6020 CLS : PRINT AT 5,8; INVERSE 1; H G A M E
OVER”
6025 PRINT AT 8,9; INK 5; BRIGHT 1;“You score
d '*; sc
6026 IF sc >hs THEN LET hs=sc: PRINT Well
done- A new high-score!!": GO TO 6030
6027 PRINT The high-score is ";hs
6030 PRINT INK 6’’’’" Press 1 -for a hard ga
me, or 2 -for an easier game. "
6040 IF INKEY$<>"1” AND INKEY*<>"2" THEN GO
TO 6040
6045 LET sk =(.7 AND INKEY*="1 H >+<.85 AND INKE
Y$=”2")
6050 CLS
7000 FOR -f = l TO 21: PRINT AT -f , 0; “A" ; AT -f,30;
: NEXT -f
7010 FOR -f = l TO 29: PRINT AT 1, -f ; "A" 5 AT 21,-f;
“A": NEXT -f
7020 FOR g=l TO (7 AND sk=.85)+<14 AND sk=.7)
: LET s=RND*28: LET -f = s + RND*10: LET x = INT (RN
Minelay 9
D*9)*2+l: IF +>29 THEN LET +=29
7030 FOR y = s TO + : PRINT AT x^;"^"
7040 NEXT y
7050 LET s=RND*17+2: LET +=s+RND*10: LET x=IN
T (RND*14>*2+2: IF +>20 THEN LET +=20
7060 FOR y=s TO +: PRINT AT y,xi H A ": NEXT y:
NEXT g
7390 FOR +=1 TO 20
7400 LET y=RND*13+2: LET x=RND*23+l
7410 IF SCREEN* <y,x)="" THEN GO TO 7400
7420 PRINT BRIGHT 1; INK 6;AT y,x5 u f": NEXT
+
7500 FOR +=1 TO 10
7510 LET y=RND*13+2: LET x=RND*23+l
7520 IF SCREEN* <y,x> = '' " THEN GO TO 7510
7540 PRINT INK 5; AT y,x’,"F": NEXT +
7550 FOR +=1 TO 5: PRINT AT RND*13+2,RND*28+1
; INK 4; BRIGHT 1; "G": NEXT +
7800 LET y=2: LET x=l: LET yl=y: LET xl=x: LE
T a*="£"
7340 LET my=INT <RND*11)+10: LET mx=INT (RND*
13)+12: LET myl=my: LET mxl=mx
7350 LET sc=0: PRINT AT 0,0;"Score ";sc
7999 GO TO 50
9000 FOR +=USR "a" TO USR "s u ^7: READ g: POKE
+,g: NEXT +
9010 DATA 24,36,66,153,153,66,36,24,28,28,73,
62,3,23,20,54
9020 DATA 220,220,73,126,72,92,20,54,195,36,2
4,36, 126,90, 129 ,'0
9030 DATA 0,0,0,12,62,126,62,12,0,0,8,73,42,2
8,62,127
9040 DATA 4,14,6,12,24,48,96,0
9500 PRINT INK 0;AT 0,0;“ _ _ _ _ _ _
9600 FOR +=0 TO 4: PRINT INK 5;AT +,0; BRIGH
T 1; "D “: FOR g=l TO 31
9610 PRINT AT +,g-lj OVER 1; INK 0; BRIGHT 1;
"D" j INK 55*0"
9620 IF SCREEN* <+,g-l)="_" THEN PRINT INK
2; PAPER 7!AT +,g-l \"F"
10 Minelay
9630 BEEP . 04 , (g + -f ) /3
9640 NEXT q: PRINT AT -f , 31 ! " ” : NEXT -f
9645 PLOT 16,173: DRAW 3,-10: DRAW 4,10: P
30,173: DRAW 7,-23
9650 PRINT ’"Move about the maze picking u
qolden eggs, avoiding the mines 6c also the
ne-1ayer."
9700 PRINT INK 6’"I-f you pick up an axe y
can destroy the maze walls, mines, and
e mine-1ayer.*
9750 PRINT ’“You begin with 3 liyes, but a
extra li-fe is given every 500 points."
9800 PRINT INK 6’" Q.UP Z.
DOWN"’ INK 5’” I.LEFT P....RIGHT"
9900 INPUT "Press ENTER to start..."!a*
9910 IF INKEY$="" THEN GO TO 9910
9920 CLS
9999 RETURN
11
Fall Guy
This is a game for two, in which each player directs a small figure down a
vertical maze so that it can drop through a hole in the moving floor at the-
bottom. The figure is manoeuvred through the maze by directing
markers up and down the outer walls and shifting horizontal sections of
the maze to the left or right, allowing the figures to drop through to lower
levels. The trick is to alter the internal pattern of the maze in order to
move your own figure without at the same time opening up advantages
for the opposition.
1 BORDER 0: PAPER 0: INK 7: CLS
2 REM @ PAUL STANLEY 1983
5 GO SUB 9000
15 INPUT "Please enter your names. F
irst, the player on the le-ft:" , bS: INPUT “And
now the player on the right:" ’ cS
17 PRINT AT 10,10;"PLEASE WAIT"
20 GO SUE 8000
30 GO SUB 7000
40 LET y=INT <RND*19)+2: LET yl=INT <RND*19
) +2
42 LET g=7: LET gl=24: LET -f = i: LET -fl = l
44 LET wS=" 4444444444444444444"
45 FOR i = 10 TO 30: EEEP .07, i: NEXT i
50 PRINT INK 3;AT y,4;" C " ; INK 6;AT yl,27;
„ D »
60 PRINT BRIGHT 1; INK 3; AT 4,g ;"B"; INK 6
;AT 41, g 1; "B"
70 IF SCREENS (-f + l,g)=" " THEN PRINT AT -f ,
g; " LET 4=4 + 1: PRINT AT 4,g! BRIGHT 1; INK
3BEEP .01,10
73 IF SCREENS (4+1,g)="0" THEN FOR i=3 TO
9: BEEP .01,1*5: NEXT i: PRINT AT 4,g;" ”! BR
IGHT l; INK 6 j AT 1,7; "S": LET 4 = 1: LET, g=7
75 IF SCREENS (4 1 + 1 , gl 5 = “ " THEN PPvINT AT
•f 1 , g 1 5 " ": LET 41=41 + 1: PRINT AT 41,gl; BRIGH
T 1! INK BEEP .01,20
76 IF SCREENS <41+1,gl)="0" THEN FOR i=3 T
O 9: EEEP .0i,i*5: NEXT i: PRINT AT 4i,gl; H "
; BRIGHT l; INK 6;AT 1,24 ;"B": LET 41=1: LET
12 Fall Guy
g 1 = 24
77 IF f =21 OR -f 1 =21 THEN GO TO 5000
80 IF IN 63486=253 AND y>2 THEN PRINT AT y
45" ": LET v=y- 1
85 IF IN 61438=254 AND yl>2 THEN PRINT AT
•1,27; ■' LET yl=y 1 - 1
90 IF IN 65022=254 AND y<20*THEN PRINT AT
',4; " LET y=y+1
95 IF IN 49150=253 AND yl<20 THEN PRINT AT
yl,27;" ": LET yl=yl+l
100 IF IN 64510=254 THEN
105 IF IN 57342=253 THEN
110 IF IN 64510=253 THEN
115 IF IN 57342=254 THEN
200 LET w$= ? i$ (2 TO )+w*(l)
NK 4;
GO SUB 1000
GO SUB 2000
GO SUB 1100
GO SUB 2100
: PRINT AT 21,6
999 GO TO 50
1000 LET i =>'-1 : IF v = -f THEN IF g = 6 THEN IF
a$(i,2)<>" " THEN RETURN
1001 IF y=fl THEN IF gl=6 THEN IF a$(i,2)<>
” ” THEN RETURN
1002 LET a$(i)=a*<i ,2 TO )+a$(i,l)
1005 IF y = -f THEN IF a$<i,g-5><>” " THEN LET
9 = 9-1
1007 IF y=-f 1 THEN IF a$ ( i , g 1 -5) < > ” " THEN L
ET gl=gi-1
1010 PRINT AT y,6;a*(i): RETURN
1100 LET i =y-1 : IF y = -f THEN IF g = 25 THEN IF
a* <i,19)< >" " THEN RETURN
1101 IF y = -fl THEN IF gl=25 THEN IF a$(i,19)
<>" " THEN RETURN
1102 LET a$(i)= a* <i,20)+a$(i, TO 19)
1105 IF y=-f THEN IF a$ < i , g-5) < > “ " THEN LET
9=9+1
1107 IF y=-f 1 THEN IF a* ( i , gl-5) < >" ” THEN L
ET g1=g1+1
1110 PRINT AT y,65a*<i): RETURN
2000 LET i=yl-i: IF yl=-fl THEN IF gl=6 THEN
IF a$(i,2)< >” " THEN RETURN
2001 IF yi=f THEN IF g=6 THEN IF a$ti,2)<>'
" THEN RETURN
2002 LET a$<i)=a$<i,2 TO )+a$(i,lf
2005 IF yl=-f 1 THEN IF a* ( i , g 1-5>'.< > " " THEN
LET g1= g1-1
Fall Guy
13
2007 IF yi=+ THEN IF a$(i,g-5)<>" '■ THEN LE
T g=g-l
2010 PRINT AT y 1,6;a* <i): RETURN
2100 LET i =y 1 - 1 : IF y 1=+ 1 THEN IF gl=25 THEN
IF s.$(i,19)<>" ” THEN RETURN
2101 IF yl= + THEN IF g=25 THEN IF a$(i,19)<
>" " THEN RETURN
2102 LET a$(i)=a*(i,20)+a$<i, TO 19)
2105 IF yl=+ 1 THEN IF a*<i,gl-5)<>" " THEN
LET gl=gl+l
2107 IF y 1 =-f THEN IF a*(i,g-5)<>" " THEN LE
T g=g+l
2110 PRINT AT y1,6ia$ <i) : RETURN
5000 IF + = 21 THEN LET y = +: LET x = g: LET ink =
3
5002 IF + 1 =21 THEN LET y=-f 1 : LET x = gl : LET i
nk = 6
5005 LET v&= u B£"l LET c = l : FOR g=0 TO 16: PRI
NT AT y,x > BRIGHT 1; INK ink;w$(c): LET c=<c =
2) + (2 AND c = l): FOR 1 = 1 TO 3: BEEP .02, i: NEX
T 1: NEXT g
5006 FOR -f=0 TO 31: PRINT AT 18, + ;" " ; AT 19, +
; "5 AT 20, + ; - " ; AT 21 , -f; INK 2; " ": NEXT +
5007 FOR i =2 TO 28 STEP 2: PRINT INK 5;AT 19
,f-li“ ";AT 2BEEP .1,10: PAUSE 5: PR
INT AT 20, f ; " INK 5; AT 19, -f + 1 ; ӣ 11 : BEEP .1
,20: PAUSE 5: NEXT -f
5010 CLS : LET wi£=(b$ AND -f=21) + (c$ AND +1=21
): IF +=21 AND +1=21 THEN GO TO 5050
5020 PRINT INK 4;AT 5,0;"Well done
5030 PRINT INK 6’’"You were the best Fall Gu
5040 GO TO 5100
5050 PRINT INK 4;AT 5,0;"The result was a dr
aw."’ INK 6’’"You both did equally well."
5100 PRINT ’’"Press ""X" ,, to quit the program
.“’ INK 5’"Press ""1"" tor the same course."’
INK 4’"Press ”"2"" +or a new course."
5110 IF INKEY$="x" THEN STOP
5120 IF INKEY*="1" THEN GO TO 5500
5130 IF INKEY*="2" THEN CLS : PRINT AT 10,10
;"PLEASE WAIT": GO TO 20
5140 60 TO 5110
5500 CLS : FOR +=1 TO 19: LET i=INT <RND*20)+
14 Fall Guy
l: LET a$(f)=a$(+,i TO )+a*<-f, TO i ) : NEXT -f
5600 GO TO 30
7000 CLS : FOR -f = l TO 19: PRINT AT -f + l,6;a*(f
) : NEXT -f
7010 FOR -f =2 TO 21: PRINT INK 2; PAPER 4; AT
-f ,5; “A" ;AT 4,26i"A“: NEXT f
7020 FOR -f =5 TO 26: PRINT INK 2; PAPER 4; AT
1 , -f 5 "4" : NEXT f
7030 PRINT AT 1,7;" " ; AT 1,24;" "jAT 21,16;"
7040 PRINT ERIGHT 1; INK 3;AT 0,0;b$i INK 6;
AT 0,(32-LEN c*);c*
7999 RETURN
80.00 DIM a* (19,2.0): FOR -f = l TO 19
8010 FOR g=l TO 20: LET a*<f,g>=" ”: IF RND >.
5 THEN LET a* (-f , g ) = " A ”
8015 IF RND< . 02 THEN LET a* (-f , g ) = " O "
8020 NEXT g: NEXT -f
8090 RETURN
9.000 FOR -f=:USR "a" TO USR "e”+7: READ g: POKE
-f , g : NEXT -f
9010 DATA 170,85,17.0,35,170,85,170,35
9.020 DATA 24,24,255,60,60,90,66, 195
9030 DATA 8,12,25.0,137,250,12,3,0
9040 DATA 16,48,95,147,95,48,16,0
9.050 DATA 153,219, 126,60,60, 126,219, 129
9500 FRINT INK 0;AT 17,0;" aaa a a a
9540 FOR -f =3 TO 7: FOR g=0 TO 31
9550 IF SCREEN* (-f + 14, g) = "a" THEN PRINT INK
-f ; AT -f+ 14, g i "B"
9555 BEEP . 06,-f*2 + g
9560 NEXT g: NEXT -f
9570 FOR -f = l TO 17: POKE 23692,255: PRINT AT
21,31;“ ": FOR g = 2.0 TO 30: BEEP . 005, g: NEXT
g: NEXT i
9530 PRINT INK 4;AT 6,0;"A Game For 2 Player
s Who Have TaGuide Their Man To The Bottom Q-f
The Grid Be-fore Their Opponent. "
9598 PRINT INK 5’"Avoid The Mines (0), For L
and i n gOn One 0-f These Will Send You Right T
Fall Guy 15
o The Top Again."
9600 PRINT INK 6’ "CONTROLS: UP 'DOWN LEFT
RIGHT"
9610 PRINT ’"PLAYER 1: 2 A Q W"
9620 PRINT INK 4’"PLAYER 2: 0 L O
P"
9630 PRINT ’"Press Any Key To Continue....":
PAUSE 0
9640 FOR f=l TO 20: POKE 23692,255: PRINT AT
21,315" ": FOR g=20 TO 30: BEEP .005,g: NEXT
g: NEXT -f
9650 RETURN
16
Tug-of-War
Tug-of-War is a two player game consisting of a canyon with a rope
stretched across the top, held by a team of three figures on either side. A
small UFO flies overhead and each player takes turns in dropping a
parachute from it, attempting to land on a target which appears lower
down the screen in a random position. Every time a parachutist hits the
target, the opposing team is pulled further towards the edge of the
canyon and if a man topples over the precipice, the team is weakened.
The winner is the player who succeeds in pulling all the opposing team
over the edge of the canyon.
1 BORDER 0: PAPER 0: INK 7: CLS
5 GO SUB 9000
10 GO SUE 8000
20 GO SUB 7000
1000 PRINT AT 14,t!" LET t=INT <RND#28)+2:
PRINT AT 14,t; " "
1050 FOR *=0 TO 30: PRINT AT 0,4;" I "
1060 IF INKEY$="a" THEN GO TO 2000
1065 BEEP ta,25
1070 NEXT *: 60 TO 3000
2000 FOR g=0 TO 14
2010 PRINT INK 4; AT g , -f + 1 ; ” J"
2020 BEEP .05,g
2025 PRINT AT g , * + 1 ; ” "
2030 NEXT g
2040 IF 1 +lOt THEN GO TO 3000
2100 LET #a=xa-i: LET xb=xb-l: FOR *=20 TO 30
: BEEP .01,*: NEXT *
2110 PRINT AT 14,t; " "
2200 PRINT INK 2;AT 16,xa;a$C1) 5 " ” ; AT 17,xa
ia$(2)i" "5 INK 6;AT 16,xbib$(1);" “;AT 17,xb
J b*(2) 5 * ”
2210 PLOT (xa+LEN a$(l))#8,4l: DRAW ixb-xa-LE
N a$<l))*8-l,0
2220 IF ATTR <18,xb)=3 THEN GO TO 3.000
2225 LET u=16: PRINT AT 16,18;" " ! AT 17,18;”
“: GO SUB 6000
2230 IF tb=.02 THEN DIM b$(2,4):.LET b*(1)="
Tug-of-War 17
EFEF ": LET b$ C 2 )="GH6H"
2232 IF tb=. 002 THEN DIM b$(2,2): LET b$(1)=
"EF'\ LET b*(2>=“<Stf"
2233 IF tb=.00.02 THEN LET w=l : GO TO 6500
2235 LET tb=tb/10
2237 LET xb=xb+2
2240 PRINT INK 2;AT 16,xaia$(1 I i " " ; AT 17, x
a;< 2) ; " " ; INK 6;AT 16,xb5b*(1);“ "iAT 17
,xb;b$(2); M
2250 PLOT (xa+LEN a*<1J)*8,41: DRAW (xb-xa-LE
N a$(l ))*8-1,0
2260 GO TO 3000
3000 PRINT AT 14,t;” LET t=INT (RND*28)+2:
PRINT AT 14,t5" ”
3050 FOR +=30 TO 0 STEP -1: PRINT AT 0,+;"/ "
3060 IF INKEY$=“I" THEN GO TO 4000
3065 BEEP tb,25
3070 NEXT -f: GO TO 1000
4000 FOR g=0 TO 14
4010 PRINT INK 5; AT g,-f;'V'
4020 BEEP .05,g
4025 PRINT AT g,f;" ”
4030 NEXT g
4040 IF fOt THEN GO TO 1000
4100 LET xa=xa+l: LET xb=xb+l: FOR -f=20 TO 30
: BEEP .01,-f: NEXT -f
4200 PRINT INK 2;AT 16,xa-l5" "Ja*<l);AT 17,
xa-15“ " 5 a$(2); INK 6;AT 16,xb-li" "j b$(1 ) ;AT
17,xb-i;" ";b*(2)
4210 PLOT (xa+LEN a$(1))*3,41: DRAW (xb-xa-LE
N a*(l>)*8-1,0
4220 IF ATTR (18,xa+LEN a$(l)-l)=3 THEN GO T
O 1000
4225 LET u=14: PRINT AT 16,13;" ";AT 17,13;"
"; GO SUB 6000
4230 IF ta=.02 THEN DIM a*<2,4): LET a$(l)="
ABAB" LET a$ (2) = " CDCD"
4232 IF t.a=.002 THEN DIM a$(2,2): LET a*(1)=
"AB": LET a$(2 )="CD”
4233 IF ta=.0002 THEN LET w=2: GO TO 6500
4235 LET ta=ta/10
4240 PRINT INK 2;AT 16,xa;a$(1);AT 17,xa!a$(
2); INK 6;AT 16,xb;b$(1);AT 17,xb;b$(2>
4250 PLOT (xa+LEN a$!l))*8,4l: DRAW (xb-xa-LE
18 Tug-of-War
N a$(i)>*8-1,0
■4260 GO TO 1000
6000 FOR 4 = 16 TO 20: PRINT INK 5;AT + , u.; “/U “
; INK 3;AT 4+1, u; "MN"
6010 BEEP .1,10-4
6020 PRINT AT F,u;“ “ ; AT 4 + 1 , u 5 "
6025 NEXT 4
6030 RETURN
6500 FOR 4=0 TO 7: PRINT AT 2,2; INK 4;“WELL
DONE PLAYER “;W;“! YOU WON!": FOR g=l TO 3: B
EEP .04,g*4: NEXT g: NEXT 4
6600 PRINT AT 5,2; INK 5;‘PRESS ANY KEY TO PL
AY AGAIN.“
6700 PAUSE 0: PAUSE 0: CLS : GO TO 20
7000 INK 3: FOR 4=0 TO 31: PLOT 0,4: DRAW 106
+ RND*5,0: NEXT 4
7010 FOR 4=0 TO 31: PLOT 255,4: DRAW -<106+RN
D*5),0: NEXT 4
7012 PLOT 0,31: DRAW 111,0: PLOT 255,31: DRAW
- 110,0
7015 INK 7
7017 DIM aS(2,6): DIM bS<2,6)
7020 LET as(1)=" ABABAB": LET a$(2)=" CDCDCD ":
LET bS(1) =”£F£F£F ": LET b*<2)= "GHGHGH"
7030 LET xa=7: LET xb=l?
7040 PRINT INK 2;AT 16,xa;a$(1)iAT 17,xa|a$(
2); INK 6;AT 16,xb;bs(1);AT 17,xb;b$(2)
7050 PLOT < xa + LEN aS(l))*8,41: DRAW (xb-xa-LE
N aS(1))*3-1,0
7060 LET ta=.02: LET tb=ta: LET t=0
7300 RETURN
3000 FOR 4 =USR “a" TO USR "n“+7: READ g: POKE
4,g: NEXT 4
3010 DATA 24,52,62,60,24,31,255,15,0,0,0,0,0,
248,255,240,15,7,7,3,0,0,0,0,0,123,192,224,11
2,24,12,7
3020 DATA 0,0,0,0,0,31,255,15,24,44,124,60,24
,243,255,240,0,1,3,7,14,24,48,224,240,224,224
,192,0,0,0,0
8030 DATA 0,129,66,36,102,255,126,60,16,124,2
54,0,16,56,16,40
3040 DATA 1,195,101,55,27,15,7,3,123,195,166,
236,152,240,224,192,3,3,3,7,14,28,134,112,192
Tug-of-War 19
,192, 192,224,112,56,29,14
8100 RETURN
9000 PRINT " TUG_OF_WAR"
9005 PRINT INK 3’" BY PAUL S T A N L
E Y
9006 PLOT 0,151: DRAW 255,0: DRAW 0,24: DRAW
-255,0: DRAW 0,-24
9010 PRINT INK 6’"A simple game Tor 2 player
s who have to win at tug-of-war, not by stre
ngth, bat by reactions."
9020 PRINT INK 4’"A UFO will Ply across the
top oPthe screen and a target will appear
at the bottom. Player 1 can parachute out on
to the target by pressing ""A”", and
player 2 with "”L.
9030 PRINT INK 6* "IP the fJa.r ac hut i st lands o
n the target you will pull the other team. I
P any men Pall down the canyon that team wil
1 Pina it harder to win"
9040 PRINT INVERSE 1;AT 21,3;"PRESS ANY KEY
TO START": F4USE 0: CLS : RANDOMIZE : RETURN
20
Horse Race
Horse race is a racing and betting game for any number of players in
which six horses race across the screen. At the beginning of the game you
can choose how many races there will be at the meeting.
Before the start of each race the betting form is displayed, complete with
the tipsters odds on each runner. The odds are a fairly accurate reflection
of each horse’s potential.
Starting with £200, each player may bet on one horse in each race and the
winner is the player who ends up with the largest amount of money at the
end of the meeting. If you want the rules to allow cheating then players
who lose all their money may have the option of accepting the offer of an
additional £50, otherwise they are out of the game.
1 RANDOMIZE : BORDER 7: PAPER 7: INK 0: CL
S : GO SUB 700.0: CLS
Z INPUT "How many races would you like t
here to be at this meeting? races
3 INPUT "How many punters are there?" , a
4 DIM p(a): FOR c=l TO a
5 LET p (c ) =2.00
6 NEXT c
1.0 GO SUE 9000
20 CLS : GO SUB 1999
100 FOR c=2 TO 12 STEF 2
105 PRINT INK c/2; AT c,0;c/2;" A"
106 PRINT AT c-1,2 j "■"
107 NEXT c
108 PLOT 251,170: DRAW 0,-102
109 PRINT AT 13,2;PRINT AT 0,31; OVER 1
110 LET a$= "FINISH 11 1 FOR c = i TO 6: PRINT AT
13+c,31ia$(c): NEXT c
115 FOR c = 163 TO. 67 STEP -16: PLOT 24,c: DRA
W 227,0: NEXT c
120 30 SUB 1000
1000 BEEP .5,0: PRINT AT 14,0;“READY": BEEP .
5,6: PRINT AT 14,0;"STEADY": BEEP .5,12: PRIN
T AT 14,0;"GO ”: BEEP .5,18: PRINT AT 14,0
Horse Race 21
1001 LET ge=0: DIM x <6) : FOR c=l TO 6: LET x(
c)=2: NEXT c
1002 FOR c — 1 TO 6
1004 BEEP .03,-20: BEEP .03,-30
1005 LET x(c)=x(c) + (-f < c ) = 1 AND RND< . 8) + (-f ( c ) =
2 AND RND< . 77) + C-f <c> =4 AND RND< . 74) + (-Me) =S A
ND RND<.71>+<f<c)=16 AND RND< . 68) + (-f < c ) =32 AN
D RNDC.65)
1006 PRINT INK c;AT c#2,x(c)-1;" 4"
1008 IF x (c)=31 THEN LET ge=i
1009 BEEP .03,-20: BEEP .03,-30
1015 NEXT c
1020 IF ge=l THEN GO TO 1050
1040 GO TO 1002
1050 DIM h<6): LET manv=0: FOR c = l TO 6
1052 IF x(c)=31 THEN LET many=many+l: LET h(
1053 NEXT c
1054 IF many=l THEN LET winner=h(l): GO TO 1
090
1055 PRINT AT 20,0;"There is a photo-finish b
etween these horses: 11
1056 PRINT AT 21,15; h < 1) ;'■ n ;h<2);"
1057 IF many=3 THEN PRINT ;h(3);
1058 IF many=4 THEN PRINT ; 11 " ; h (4 )
1060 FOR c=l TO 300
1065 NEXT c
1067 LET er =INT (RND*4)+1
1070 LET winner=h(er)
1071 IF winner =0 THEN GO TO 1067
1075 IF RNB<.33 THEN LET g$=“a short head":
GO TO 1079
1076 IF RND<.4 THEN LET g$="a neck": GO TO 1
079
1077 LET g$=“1 length"
1079 PRINT AT 20,0!"
1080 PRINT AT 20,1;"The winner is "iwinneri”
who won by”: PRINT AT 21,l!g*
1081 PAUSE 130
1082 CLS
1085 GO TO 1100
1090 PRINT AT 20,1;"The winner is “iwinneri"
22 Horse Race
who won by ": PRINT ” ";INT <RND*3>+25" lengt
hs. "
3095 PAUSE 130: CLS
1100 FOR r=l TO a
1101 IF p(r)=0 THEN LET r=r+l: GO TO (1101 A
ND r<a+1) + (1130 AND r = a+l)
1105 IF e(r)=winner THEN LET p ( r)=p(r)+b<r)*
■f (winner ) : GO TO 1115
1110 LET p < r ) =p (p)-b('r)
1115 IF p(r)< =0 THEN GO TO 8000
3117 IF efrlOwi nner THEN GO TO 1125
1120 CLS : PRINT AT 10,4;"Well done punter
r; 11 ! ,,,,, Your horse won and you now have £" ; p (
r): PAUSE 0: GO TO 1130
1125 CLS : PRINT AT 10,4;"Bad luck punter “ ; r
i" !"Your horse did not win, and so you no
w have £";p ( r) : PAUSE 0
1130 NEXT r
1150 GO TO 20
1999 LET races=races-l: IF rares=-l THEN GO
TO 6000
2000 DIM i<6): FOR c=l TO 6: LET f(c)=2'<INT
<RND*6 ;!: NEXT c
2020 PRINT "The tipsters reckon the betting:"
2025 FOR c=l TO 6: PRINT INK c; PAPER (7 AND
c < 4 J + (0 AND c >3) 5 AT 2*c,2j“HORSE "5c{ “ ”5
-f (c) ; ■*: 1 “
2026 IF -Mc)=i THEN PRINT INK c; PAPER <0 A
ND c >3) + <7 AND c<4);AT 2*c,13; "EVENS"
2029 NEXT c
2030 DIN e (a) : DIM b(a>: FOR -f = l TO a
2031 IF p(-f)=0 THEN LET -f=-f + i: GO TO (2031 A
ND i <a+l ) + (2050 AND -t=a+l)
2032 PRINT AT 14,1;"Punter "; i ; " :": PRINT ’"
You have £ 1 ; p <-f ) ; " . " : PRINT "How much .
would you like to bet?"
2033 INPUT b (-f ) : IF b(-f)>p(-f) THEN GO TO 203
3
2034 IF b(-f JOINT (b (-f ) ) THEN GO TO 2033
2035 PRINT ’"On which horse is this to be
placed?"
2036 INPUT e(-f)
2037 IF e (-f ) < 1 OR e(-F3>6 THEN GO TO 2036
2038 PRINT AT 17,0;"
Horse Race 23
2039 PRINT AT 19,0;"
2040 NEXT f
2050 CLS : RETURN
6000 PRINT "THE MEETING IS NOW FINISHED"
6010 FOR f = l TO a
6015 IF p(f>=0 THEN LET +=++1: GO TO (6015 A
ND -f <a+l) + (6040 AND f=a+l)
6020 PRINT ’"Punter " ; -f; “ -finishes with £";p(
f )
6030 NEXT -f
6040 PRINT INVERSE 1;’"Press any key to play
again. ' : PAUSE 0: RUN
7000 PRINT ’’” I ■ ■■■ ■■■ ■■■ ■■■
■■■■■■a ■ ■■■ ■ ■
■■■ ■■■ ■■ ■■■■■■ ■ ■
■ ■ ■■■ ■ ■ in ■■■’
7010 PR IN’" ’ ’ SSI ■ HI ■■■
I I I S ■ ■ Ml ■
» ■ II ■■■■■■
■ III HI HI"
7020 PRINT ’’ A gambling game -for the whole
-f am i 1 y ” ’ 5 " @ Pan 1 Stanley”
: PAUSE 300: RETURN
8000 CLS : PRINT AT 5,0;"Tut Tut! Punter ";r;
”, you have": PRINT "run out o-f money.”
8005 PRINT : PRINT "I must therefore not let
you betany more."
8010 PRINT ’"However, if your rules are to
allow cheating, if you press "; INVERSE l;"C”
;: PRINT Iwill give you £50 more."
8020 PRINT "Otherwise press "; INVERSE 1;"X";
INVERSE 0; ' and I will cancel you from th
8030 IF INKEY*="x“ OR INKEY*="X" THEN LET p(
r)=0: GO TO 3050
8040 IF INKEY*="c" OR INKEY*="C" THEN LET p(
r)=50: GO TO 8050
8045 GO TO 8030
3050 CLS : GO TO 1130
9000 FOR c=USR "a" TO USR "a"+7: READ v: POKE
c,v: NEXT c
9001 DATA 16,BIN 00011011,18,254,62,BIN 01100
110,BIN 10101010,34
9999 RETURN
24
Championship Boxing
Although we say it ourselves, this program is very close to being a master¬
piece. Let’s face it, you’re never going to make it into the ring, but the
hours you spend keying-in programs amount to a great deal of repressed
aggression. So here’s your chance to take on the boxing champions of the
world without stirring from your armchair. The program offers you a
bird’s eye view of a boxing ring and the opportunity to go three rounds
with an opponent of your choice. You only score points if you manage to
connect with the head, and a KO is possible if your strategy’s slick
enough.
1 BORDER 5: PAPER 6: INK 0: CLS
2 REM @ P.STANLEY
5 LET sl=0: LET s2 = sl
8 GO SUB 7000
10 GO SUB 9000
15 LET round=l
20 GO SUB 9500
30 GO SUB 9550
62 PRINT AT 17,2iround
63 BEEP .25,0: BEEP .25,0
65 LET y=2: LET x=7: LET yl = y: LET xl = x
70 LET g=23: LET -f = 17: LET -fl=-f: LET gl=g
90 LET tm=3: LET ts=2
95 LET e=0
100 PRINT AT y1,x15 " "5 AT yl+l,xl5" "5 AT yl
+ 2,xl5 ” "i INK 2 5 AT y,x; “AC "i PAPER 0;AT y+1
,x; "D"; PAPER 6 j AT y + 2,xj " EG ”: LET yl=y: LET
xl = x
120 PRINT AT -f 1 , g 1 i " H ;AT -f 1 + 1 , g 1 + 1 5 " "|AT
*1+2,gl;" "iAT -f , g; "HI" 5 PAPER 7;AT *+1,8+15
" D PAPER 65 AT * + 2 , g i "JK " : LET LET gl =
3
130 LET ts=ts-2: IF ts=0 THEN LET tm=tm-l:
LET ts=60: IF tm=-1 THEN GO TO 8500
150 PRINT AT 17,275tmi"0" AND ts<10)jts
400 IF IN 64510=254 THEN GO SUB 1000
410 IF IN 57342=254 THEN GO SUB 1100
450 IF g=x+l THEN IF RND>sU THEN GO SUB 20
00
Championship Boxing 25
500 LET y=y +(IN 61438=239 AND y<17)-(IN 6143
8=247 AND y>2)
510 LET x = x +(IN 61438=251 AND x<22)-(IN 6348
6=239 AND x>7>
550 LET -f =-f + I NT <RND*2.5)-INT < RND*2.5) + < -f < y
) - (f >y)
553 IF -f < 2 THEN LET -f=2
555 IF -f > 17 THEN LET -f = 17
560 LET g=g+INT <RND#2.5)-INT <RND*2.5)+<g<x
+ 2)-(g > x + 2)
563 IF g < x +1 THEN LET g=x+l
565 IF g >23 THEN LET g = 23
570 IF NOT e THEN IF x>20 THEN LET e=l
580 IF e THEN LET e=e-(e-l AND x<20)+l: IF
e=10 THEN 60 SUB 3000
690 BEEP .01,-20
700 GO TO 100
1000 PRINT INK 2;AT y,x+15 "BC “: BEEP .1,20
1010 PRINT INK 2; AT y,x + l;"C ■
1020 IF y=-f+1 AND x=g-i THEN LET sl=sl+l: BE
EP .04,0: PRINT AT 8,2;sl
1030 IF sl=k2 THEN GO TO 6000
1090 RETURN
1100 PRINT INK 2;AT y+2,x+1; "FG ": BEEP .1,20
1110 PRINT INK 2; AT y+2,x + l; ,, <S ”
1120 IF >'=-f -1 AND x=g-1 THEN LET sl=sl + l: BE
EP .04,0: PRINT AT 8,25sl
1130 IF sl=k2 THEN GO TO 6000
1190 RETURN
2000 IF f<y THEN GO TO 2100
2010 PRINT AT -f , g- 1; " HB " : BEEP .1,30
2020 PRINT AT +,g-l;" H"
2030 IF i =y +1 THEN LET s2=s2+l: BEEP .04,0:
PRINT AT 3,28;s2
2035 IF s2=k1 THEN GO TO 6500
2040 RETURN
2100 PRINT AT f+2,g-l |Vf“: BEEP .1,30
2110 PRINT AT -f+2, g-1 ; " J"
2130 IF -f =y-1 THEN LET s2=s2+l: BEEP .04,0:
PRINT AT 8,28;s2
2135 IF s2=k1 THEN GO TO 6500
2140 RETURN
3000 PRINT AT yl,xl; " ";AT yl + l,xl; M "5 AT yl
+2,x1;” “
26 Championship Boxing
3010 FOR x=19 TO 12 STEP -1: LET xl=x
3020 PRINT AT yl,xl5 INK 2 j “AC ";AT yl+2,xl;"£
<5“ SAT y 1 + 1, x 1 5 PAPER 0; INK 25 “Z?" 5 PAPER 6 5“
"i PAPER 25 INK 65 "Z?” 5 PAPER 6 5 “Z?" 5 AT yl,xl+2
; INK 4 ;■'/ " ; AT yl + 2, xl + 2; “A 1 M
3022 BEEP .02,0
3025 NEXT x
3030 PRINT AT yl,xl+2;“ “5AT yl+i,xl+25" "SAT
yl+2,xl+2! 11 "
3040 LET e=0: RETURN
6000 PRINT AT T, g; "RHI"\ AT T+2, g 5 “ 7,7*" 5 INK 2
; AT T +1, g; " S" 5 INK 0; "; INK 6; PAPER 3; “D"
6010 PRINT FLASH 1 5 AT 1,75"WELL BOXED- A K.O
.": BEEP .2,-20
6020 GO TO 6600
6500 PRINT AT y,x-l; INK 2 5 “ACO ”5 AT y + 2,x-l5"
£G<3" 5 INK 65 PAPER 25 AT y+1, x-25 m D u 5 PAPER 65
INK 25"11"5 INK 4;"/»"
6510 PRINT AT 1,75 FLASH 1;"BAD LUCK- A K.O.
6600 FOR T = 1 TO 200: NEXT T
6620 CLS : IF k1=s2 OR s2>sl THEN GO TO 6700
6630 PRINT "Well done ! You beat ";b*5" in",r
□und!" rounds."
6640 PRINT INK 3’"The result in points was "
5 si,” Tor you, and "5s25" -for "5 b*
6650 PRINT INK 2’“I suggest you try a toughe
r opponent."
6660 GO TO 6780
6700 PRINT "Bad luck ! You were beaten in " ;r
ound,"rounds."
6710 PRINT INK 3’"The result in points was "
5 si, "-for you, and “ ;s25" Tor "5 b*
6740 PRINT INK 2’"I suggest you try a weaker
opponent."
6780 PRINT "Here’s your choice:": RESTORE 750
0: PRINT : FOR -f = l TO 10: READ a*: PRINT T 5 " .
. . ” 5 < ” AND TO 10) 5 a*: NEXT T
6790 INPUT INK 75 PAPER 05“Enter your oppone
nt's number or 0 iT you’ve had enough. "5
6800 IF x —0 THEN STOP
6810 CLS : RESTORE 7500: FOR T=1 TO x: READ a
*: NEXT T: LET b*=a*(1 TO 6): PRINT "OK - You
Championship Boxing 27
shall -fight ";b$: PRINT INVERSE 1’ INK 3""P
RESS ANY KEY TO START THE BOUT."
6320 PAUSE 0: CLS
6830 LET sl=0: LET s2=sl: LET sk=<11-x)/12: L
ET k2=10+x + INT <RND*6): LET kl=16-x+INT (RND*
10): GO TO 15
7000 RESTORE 7500
7100 PRINT AT 10,0;"Enter your namelup to 6 1
ettersl": INPUT c*: IF LEN c*>6 THEN GO TO 7
100
7200 CLS
7500 DATA "Henry Hopeless", “Arnold Awful ","Ni
gel No-Good ","Phi 1 ip Fair"Andrew Average","
Roger Right-Hook", "Brian Br ick-Wal1 ", "Simon S
uper","Edward Excellent","Flynn Fantastic"
7510 PRINT INVERSE 1;" CHAMPIONS
HIP BOXING
INVERSE 0;” @ PAUL STANLEY"
7520 PRINT INK 3’"So you want to be a champi
on do you? I-f so this is the game f oryou. " i
INK 2* "Which opponent do you wish to -fight
-first?"
7530 PRINT : FOR -f = l TO 10: READ a*: PRINT I
NK 15f" AND fO10)ia$! NEXT -f
7540 INPUT x: IF x<l OR x>10 THEN GO TO 7540
7545 LET sk=(ll-x)/12
7546 LET k2=10+x+INT <RND*6): LET kl=16-x+INT
<RND*10)
7550 RESTORE 7500: FOR f=l TO x: READ a$: NEX
T -f: LET b$=a$ ( 1 TO 6)
7560 CLS : PRINT "Very well, your opponent wi
11 be’;a$’ INK 2’ "Each bout you -fight is only
3 rounds. Move about the ring with5-8, and
punch with GMle-ft hand)and Ptright hand). No
te that youcan move and punch at the same ti
7570 PRINT ’ INK lj"Only punches to the head
score and K.O.s are possible.”
7580 PRINT ’ INVERSE 1;"PRESS ANY KEY TO STAR
T THE BOUT.": PAUSE 0: CLS
7590 RETURN
8500 PRINT AT 17,27;"0:00"
3505 BEEP .25,0: BEEP .25,0
8510 LET round=round+1: IF round=4 THEN LET
round=3: GO TO 6620
28 Championship Boxing
3520 PRINT AT 21,0i "Prepare to -fight the next
round."; INK 6; PAPER 0;AT 2,7;* , 0";AT 19,24;
"D": FOR i=1 TO 20
3525 LET y=y-(y>2): LET x=x-fx>7)
8530 PRINT AT yl,xl!" "5 AT yl+l,xl;" "SAT yl
+ 2,xli ” "; INK 25 AT y,x 5 "4C"; PAPER 0;AT y+1
,x;"D "; PAPER 6;AT y + 2,x5 "EG ": LET yl=y: LET
xl = x
3535 LET -f =-f + (-f < 1 7) : LET g = g-Mg<23)
3540 PRINT AT fl,glj" ";AT i 1+1,g1+1;" ";AT
-f 1 +2, gl; " ";AT -f, g; “HI n ; PAPER 7;AT -f + l.g+1;
PAPER 6; AT i +2, g ; “JK " : LET -f 1 =-f : LET gl =
9
8542 IF ATTR (2,7>=50 THEN IF ATTR <19,24)=4
8 THEN GO SUB 9550: FOR -f = -l TO 2: PRINT AT
y 1 + -f , x 1 ; " " : NEXT -f: PRINT AT 21,0!"
”: GO TO 62
8545 BEEP .1,-18: NEXT i
9000 RESTORE 9010: LET -F=0: LET g=255: FOR y=
USR "a" TO USR "t"+7: READ x: POKE y,x! NEXT
y
9010 DATA -f ,63, 127, g, g, 252,254,254,-f ,g, g, g, g,
■f , -f , -f , 28,254,254,254,254,28, -f , i
9020 DATA 195, 129,-f ,-f ,-f ,-f , 129, 195,254,254,252
,g,g,127,63,-f,-f,-f,f,g,g,g,g,-f
9030 DATA -f , -f , 28, 254,254,254,254,28,56, 127, 12
7, 127, 127, 56, -f , -f
9035 DATA -f , 252, 254, g, g, 63, 127, 127, -f , -f , 56, 127
,127,127,127,56,127,127,63,g,g,254,252,f
9045 DATA 66,129,157,165,165,94,66,60,60,60,2
4,24,60,126,g,g,108,103,108,40,40,40,40,103
9050 DATA 28,30,15,15,31,62,126,252,248,240,2
40,224,224,240,240,243,252, 126,62,31,15, 15,30
, 23
9060 DATA 56,120,240,240,243,124,126,63,31,15
,15,7,7,15,15,31,63,126,124,243,240,240,120,5
6
9100 RETURN
9500 INK 4: FOR -f=0 TO 7 STEP 2: PLOT 55--f,15
-•f: DRAW 0,145 + 2*-f: DRAW 145 + 2*-f,0: DRAW 0,-2
*-f-145: DRAW -2*-f-145,0: NEXT -f
9510 PRINT INK 3; BRIGHT 1;AT l,6;"i";AT 1,2
5;"1 ";at 20,6;;at 20,25;
9520 INK 0
Championship Boxing 29
9525 PRINT AT 4,0;c$;AT 4,26;b$
9530 PRINT AT 6,0; INK 2;"POINTS"; INK 0;AT 6
,26;"POINTS"J INK 3;AT 15,0;"ROUND";AT 15,27;
“TIME"
9540 PRINT AT S,2jsl;AT 8,28;s2
9545 RETURN
9550 LET yl=16: LET xl=9: RESTORE 9560: FOR +
=1 TO 4: READ y,x
9560 DATA 0,I,-1,0,0,-1,1,0
9570 FOR e=l TO 12: PRINT AT y1,x1; "L “\AT yl+
1, x 1; "/V"; AT yl+2, xl; " N" ; PAPER 2; INK 7;AT yl
-1,xl;round
9580 BEEP .06,-45
9585 IF e=12 THEN FOR o=25 TO 35: BEEP .005,
o: NEXT o: FOR o=l TO 20: NEXT o: FOR o=35 TO
25 STEP -l: BEEP .005,o: NEXT o
9590 PRINT AT yl,xl;“ -;AT yl+l,xl;" ";AT yl+
2, xl; “ ";AT yl-1,xl;“ "
9600 LET yl=yl+y: LET xl=xl+x:
9610 RETURN
NEXT e: NEXT i
30
Motocross
Motocross consists of two games. In the first a motorcycle races across
the screen from left to right, continues down through several levels,
and must leap over obstacles placed in its path.
In the second game, Stunt-Cycle, the motorcycle leaps over a line of
buses and must be landed on the other side without loss of control. After
each successful leap the number of buses is increased.
1 BORDER 0: PAPER 0: INK ?: CLS
5 LET h s = 1 e 4 : LET wr = 4
10 GO SUE 9000
13 GO SUB 9100
15 CLS
20 GO SUB 3000
22 BEEP .2,20
25 POKE 23674,255: POKE 23673,255: POKE 236
72,255
30 PRINT AT y, x; BRIGHT 1;“ /4"
100 FOR P = 1 TO s: NEXT -f
200 LET x=x+l: IF x=31 THEN PRINT AT y,31;"
“: LET x =0: LET y=y+ 5: IF y=25 THEN GO TO 2
00.0
250 IF SCREENS <y,x+l)='“ THEN GO SUB 1000
270 IF IN 49i50=247 THEN GO TO 1020
300 LET s=s+tl AND IN 65022=251)-(1 AND IN 6
5022=254): IF s<1 THEN LET s=l
900 GO TO 30
1000 IF IN 49150=247 THEN GO TO 1500
102.0 LET c=144: FOR T=x TO 30: PRINT AT y, -f }
BRIGHT is*' " | CHR* c: LET c = c + (c < 147) - (3 AND c
=147): BEEP .1,-30: NEXT i
1030 CLS : PRINT "Bad Luck! You crashed.": GO
TO 92.00
1500 PRINT AT y,x j " "iAT y-l,x+l} BRIGHT 1; "A
1510 FOR -f = 10 TO 15: BEEP . 02,-f : NEXT -f
1520 PRINT BRIGHT 1;AT y-l,x + l;" "5 AT y,x + 2;
" A “ LET x = x + 2: RETURN
2000 LET tl=<65536*PEEK 23674+256*PEEK 23673+
Motocross 31
PEEK 23672)/48: LET t=(INT <t1*100))/100
2005 CLS
2010 PRINT AT 1,0; "Your Time Was " ; t; " Second
2020 IF t < h 5 THEN PRINT INK 4’”That Is A Ne
w Fast Time!”: LET hs=t
2030 PRINT INK 5’"The Best Time Is ";hs;" Se
conds."
2040 GO TO 9200
3000 FOR g=21 TO 6 STEP -5: PRINT AT g - 1 ,RND*
20+6; INK 6 ; “£" ; AT g- 1 , RND*20+6 ; "£" : FOR -f=0
TO 31: PRINT INK 2; AT g,-f;" ": NEXT -f : NEXT
9
3300 LET y = 5: LET x=0: LET s=20
3450 RETURN
5000 LET bu.ses=5: CLS
5010 LET y=5: LET x=0: LET s=10
5015 PRINT AT 0,11;buses;" BUSES"
5020 GO SUB 7500
5030 PRINT AT y,x; BRIGHT 1 ; “ A ,:
5100 FOR -f = l TO s: NEXT -f
5200 LET x=x+l: IF x = 3i THEN PRINT AT y,31;”
,! : LET x=0: LET y=y+ 5
5250 IF SCREEN* <y,x+l)=" " THEN GO TO 6000
5300 LET s=s+(l AND INKEY*=”d")-(1 AND INKEY*
= " a" ) : IF s < 1 THEN LET s=l
5400 GO TO 5030
6000 PRINT AT y,x;” "; BRIGHT 1;AT y-l,x + l;"<4
a : BEEP s/100,1
6020 PRINT BRIGHT 1 ; AT y-l,.x+l5" " ; AT y-2,x +
2; “A": BEEP s/100,1: NEXT -f
6030 LET x=x + 2: FOR -f=x TO (x + 20-s): BEEP s/1
00,1: PRINT BRIGHT 1 ; AT y-2,-f;" A": NEXT -f
6040 PRINT AT y-2,-f;” " ; BRIGHT 1 ; AT y-l,-f + i;
"A": BEEP s/100,1
6050 IF ATTR <y,f+l)<>6 THEN GO TO 6200
6060 FOR x = -f + l TO 30: PRINT AT y-l,x; BRIGHT
6065 BEEP s/100,<y=20)-(55 AND y=21)
6070 IF SCREEN* (y,x+l)=” " THEN PRINT AT y-
1 , x +■ 15 " “ : LET. y=y+ 1
6080 NEXT x
6085 CLS : LET buses=buses+1
6090 GO TO 5010
32 Motocross
6200 PRINT AT y-l.-f + l;" “ : LET c=144: FOR x = -f
+1 TO 31: BEEP .1,-20: PRINT AT y,x: BRIGHT 1
; ' » j CHR* c: LET c = c +<c<147)-<3 AND c = 147> : N
EXT x
6210 CLS : PRINT AT 0,0;"You Failed In Your A
tternpt At buses ’ " Buses . "
6240 IF buses—1 >wr THEN PRINT INK 5’“Howeve
r. Your Successful Jump Over ";buses-15” Bu
ses Is A New World"’“Record!I ! !": LET wr=buse
s- 1
6270 PRINT INK 6’"The World Record Is “iwri"
Buses."
6290 GO TO 9200
7500 FOR f =21 TO 6 STEP -5: FOR g=0 TO 31: PR
I NT INK 3; AT f , g; ” : NEXT g: NEXT f
7510 PRINT INK 6;AT 20, 4 5 " F"\\ FOR f=l TO bu
ses: PRINT INK 2; BRIGHT 1 NEXT f: PRI
NT INK 6 5 »HIJ*
7550 RETURN
9030 RESTORE 9010: FOR f=USR "a" TO USR ”j”+7
: READ g: POKE f,g: NEXT f
9010 DATA 32,62,50,254,152,90,231,66
9020 DATA 2,119,82,92,124,242,23,26
9030 DATA 66,231,90,25,127,76,124,4
9040 DATA 88,232,79,62,58,74,238,64
9050 DATA 0,0,0,0,0,32,112,248
9060 DATA 1,3,7,15,31,63, 127 f 255
9070 DATA 126,66,126,126,66,126,126,36
9080 DATA 224,252,255,255,255,255,255,255,0,0
, 128,240,254,255,255,255,0,0,0,0,0,192,248,25
5
9090 RETURN
9100 LET a*=”MOTOCROSS": PRINT AT 21,ll;aS: F
OR f=l TO 9: FOR g=20 TO 0 STEP -1: BEEP .001
,f*3+30: PRINT AT g,f+10!a*(f) 5 AT g+l,f + 10J"
- : NEXT g: NEXT f
9105 FOR f=0 TO 30: BEEP .04,-28: PRINT INK
6 j AT 2, f ; " A"-,: NEXT f: PRINT AT 2,315” "
9110 PRINT AT 2,05"This Program Consists Of T
wo Motorbike Games."
9120 PRINT INK 6’ "For '”* Moto-cr oss" “ , jump w
ith J only when you reach the obstacle"
9130 PRINT INK 5’"For both programs, acceler
Motocross 33
at ion and deceleration are possible by hold
i n g A or D.
9200 PRINT INK 4’“Press the key which corres
ponds to what you want to do.”
9210 PRINT INK 6’"1...Moto-cross”’ INK 5’"2.
, .Stunt-cycle" ’ INK 7’ ”3...Exit -from the prog
9220 IF INKEY$="1" THEN GO TO 15
9230 IF INKEYS="2“ THEN GO TO 5000
9240 IF INKEY$="3” THEN STOP
9250 GO TO 9220
34
Critical Path Analysis < 48 k>
Even if critical path analysis does not exactly excite you, this program
can be used to find the longest or shortest route through a large maze. As
dimensioned, it will handle a network of up to 50 nodes or junctions,
each of which may have up to 5 outlets. The joining links can represent
distance or time and the program will list all possible paths, or the longest
path, or the one with most nodes. Loop back conditions are
automatically rejected by the program. Draw your own network on
paper and enter the separate link details in the DATA LINES 1000
onwards. Then press the key sit back and watch the computer display
the path analysis.
10 REM *CRITICAL PATH ANALYSIS @198
3 MICHAEL SEWS -for 48k Spectrum
20 DIM a$(50, 5) : DIM b$<50,5): DIM q*<30):
DIM n$(30): DIM p*<30,20): DIM p(30): DIM t(3
0 )
21 LET K=0
25 GO TO 500
29 REM **READ NETWORK DATA
30 READ e
40 FOR x=l TO e
50 READ a,b,c
60 FOR y=l TO 5
70 IF b*(a)(y) = " " THEN LET b$(a) <y)=CHR$
< 33 + b) : LET n$(a)=CHR$ (CODE n$(a)+l): GO TO
90
80 NEXT y
90 FOR y=1 TO 5
100 IF a$(a)(y)=" - THEN LET a$(a) <y)=CHR$
(33+c): GO TO 120
110 NEXT y
120 NEXT x
125 READ a: IF a<>-l THEN PRINT "Check sum
error": STOP
127 PRINT " DATA Check OK"
130 INPUT "ENTER start node ";s: LET n=s: IF
s< 1 THEN GO TO 13.0
135 PRINT : PRINT AT 20,0;"Enter ""-1"" to s
Critical Path Analysis 35
ee ALL passible paths."
140 INPUT "-finish node - ; -f : IF -f >0 THEN LET
n*(-f) = " ■'
142 IF i >e OR -f=0 OR -f = s OR i<-l THEN GO TO
140
143 PRINT AT 20,0;"
”;AT 20,55"
WAIT PLEASE"
145 LET p=l: LET h*=n*
150 LET p*<p)(1)= CHR* (33+n)
160 IF n*(r,)=" " THEN GO TO 300
165 LET g*<n)="l”
170 LET h=CODE h*<n>-32
175 IF g*(CODE b*(n)<h)-33)<>" " THEN GO TO
430
130 FOR x=l TO LEN p*(p): IF p*<p)(x)=” ” TH
EN LET p*(p><x)=b*<n)(h)! GO TO 185
182 NEXT x
185 LET t(n)=p(p): LET p(p)=p(p)+CODE <a*(n)
<h))-33
190 LET n=CODE b*(n)(h)-33
200 GO TO 160
300 LET v = l : LET g=0
301 FOR x=LEN p$(p) TO 1 STEP -1
305 IF p*(p)<x)=” " THEN GO TO 320
306 LET g*(CODE p*(p)<x)-33>=” “
307 IF g=0 AND p* ( p ) ( x ) < > CHR* (-f+33) AND -f >0
THEN LET v=0
310 LET g=l: IF CODE h*<CODE <p*<pMx>)-33)>
33 THEN GO TO 400
320 NEXT x
325 IF v=0 THEN LET p*(p)="
": LET p=p-l
330 PRINT AT 8,050*;AT 8,0;: LET j=0: LET u=
01 LET r=0: LET tp=0: FOR x=l TO p
335 FOR y=l TO LEN p*(x): IF p*(x)<y)=" " TH
EN GO TO 350
340 PRINT CODE p*(x) (y)-33; " , "5 : NEXT y
350 PRINT " * ";p(x): IF p(x)>j THEN LET j=
p <x) : LET k = x
355 LET tp=tp+i: IF y-l>r THEN LET r=y-l: L
ET u=x
360 NEXT x
362 LET -f*=STR* f: IF -f<0 THEN LET f$="erd"
36 Critical Path Analysis
365 PRINT "
: PRINT "No. o-f paths " jsj" to = “ ; tp
366 PRINT : PRINT "Path No. ” ; u 5 " has most n
odes. < " ; r ; ") "
368 PRINT "Path No. " ; k ; " is longest. ( ” jji " )
370 STOP
<100 LET n=CODE p*<p)<x)-33: LET h* ( n ) = CHR$ (
CODE h$(n)-l): LET q*=p*<p): LET p=p+v: LET p
$(p)( TO x)=p$(p-v)( TO x): LET p$(p)<x+l TO
)=” ": LET p(p
)=t(n)
405 FOR y=x + l TO LEN q*: LET z=CODE q$(y>-33
: IF z<l THEN GO TO 160
410 LET h$(z)=n«(z)
415 NEXT y
420 GO TO 160
430 PRINT "Loop-back error.": PRINT : FOR 1=
1 TO LEN p$(p)-l: IF CODE p$<p)<1>-33<1 THEN
GO TO 450
440 PRINT CODE p$(p) ( 1)-33; "-" ; : NEXT 1
450 PRINT CODE b*<n) <h)-33: PRINT : PRINT "P
lease correct data error.": PRINT : GO TO 330
499 STOP
500 BORDER 5: PAPER 5: INK 1
505 LET 0*=" ": FOR X=1 TO 5: L
ET 0$=0$+0$: NEXT X
510 CLS : PRINT ; INVERSE 1;"CRITICAL PATH N
ETWORK ANALYSIS "5 INVERSE 0
520 INK 0: PRINT : PRINT "CRITICAL PATH NETW
ORKS CAN BE APPLIED WHEREVER SEVERAL INTER¬
DEPENDENT ACTIVITIES NEED TO BE CARRIED O
UT IN A SPECIFIED SEQUENCE TO ACHIEVE A FIN
AL GOAL"
530 PRINT : PRINT "THE GOAL MIGHT BE THE COM
PLETION OF A LARGE PROJECT OR, MORE SIMPLY
, ARRIVAL AT A DISTANT METRO STATION BY TH
E SHORTEST POSSIBLE ROUTE"
540 PRINT : PRINT "THIS PROGRAM IS SUITABLE
FOR USEIN EITHER CASE.";
550 PRINT " A DEMONSTRATION NETWORK IS SHOWN
AND THE PROGRAM WILL TRACE OUT ALL POSSIBLE
PATHS THROUGH THE NETWORK, INDICATIN
G THE LONGEST AND SHORTEST ROUTES."
Critical Path Analysis 37
560 PRINT ; INVERSE 15 AT 21,9; "PRESS < ENTER >
" ; INVERSE 0
570 INPUT x$
600 PAPER 7: INK 0: CLS : PLOT 11,131: DRAW
23,32
610 DRAW 160,0: DRAW 42,-16
620 PLOT 11,131: DRAW 43,16: DRAW 176,0
630 PLOT 11,131: DRAW 72,0: DRAW 24,16: DRAW
112,0
640 PLOT 11,131: DRAW 32,-10: DRAW 80,0: DRA
W 32,10
650 PLOT 60,147: DRAW 24,16
660 PLOT 132,164: DRAW 16,-16: DRAW 3,-16: D
RAW 3,-16
670 DRAW 72,32: REM DRAW -40,0
630 PLOT 200,132: DRAW -43,0
700 PRINT INVERSE 1 ; AT 1,4; 11 4 " ; AT 1,10; ”5";
at l,16;"6 ";at l,23;"ll";
710 PRINT INVERSE 1;AT 5,15"1";AT 3,7;"2";A
T 3,13;”3";AT 3, 13; ”7";AT 3,23; "12";
720 PRINT INVERSE 1;AT 5,19;"8”;AT 5,24;"10
" » AT 7,20;"9";
730 PRINT AT 2,2;"4";AT 1,7; "1";AT 1,13; "l";
AT 1,19; "7" ;AT 1,26;"3";
740 PRINT AT 3,4;"2”;AT 3,10;"3";AT 3,15;"5"
;AT 3,22;"11";AT 5,6;"4";AT 5,21;"3”;at 4,27;
"9";AT 6,23!"2"
745 PRINT AT 2,8;"3";AT 2,16;”2"
750 PRINT AT 4,13;"0";AT 6,19;"3";AT 6,11;"1
1 "
300 PRINT AT 8,0; "Nodes "; INVERSE 1;"1"; IN
VERSE 0; " represent the commence- went o-f act
ivities, (represented by the joining lines).
The linelengths might represent a number o-f d
ays or weeks required to complete an activi
ty ■ ”
310 PRINT : PRINT " Activities can progress
in one direction only and the program will r
eject a network having a loop-back condition
820 PRINT " Each activity progresses in the
direction entered in the program DATA statem
ents. ”
830 PRINT AT 21,13; INVERSE 1;"PRESS <ENTER>
38 Critical Path Analysis
"! INVERSE 0
840 INPUT X*
850 PRINT AT 8,0;Q$;AT 21,18;"
860 PRINT AT 9,0;"The zero (0) length betwee
n node "; INVERSE 1;"?"; INVERSE 0;” and ”; I
NVERSE 1; "3"; INVERSE 0;" indicates the exist
ence o-f a restraint which prevents activitie
s at node " ; INVERSE 1;"8"; INVERSE 0;" -from
commencing until activities "; INVERSE l;"3";
INVERSE 0j "to"; INVERSE 1;"7"; INVERSE 0;
870 PRINT " and ”; INVERSE 1;”6"; INVERSE 0
i "to"! INVERSE 1; '7'i INVERSE 0;" are couplet
830 PRINT : PRINT : PRINT ; INVERSE 1;"PRESS
< ENTER >"; INVERSE 0;
390 INPUT X$
900 GO TO 30
1000 REM **FLOW CHART DATA****
1005 REM **number o-f connecting
1 i nes
1010 DATA 18
1015 REM **start node, -finish no
de, line length
1050 DATA 1,4,4
1060 DATA 1,2,2
1070 DATA 1,3,4
1030 DATA 1,8,11
1090 DATA 2,3,1
1100 DATA 2,5,3
1110 DATA 3,7,5
1120 DATA 4,5,1
1130 DATA 5,6,1
1140 DATA 6,7,2
1150 DATA 6,11,7
1160 DATA 7,8,0
1170 DATA 7,12,11
1180 DATA 8,9,3
1190 DATA 8,10,3
1200 DATA 9,10,2
1210 DATA 10, 12,9
1220 DATA 11,12,3
1230 DATA -1
39
Chomper
This is an interesting variation of a game we caught sight of in an arcade a
while back. It’s got a maze, power pills, a ghost and things that go chomp
in the night. Enjoy!
1 BORDER 0: PAPER 0: INK 7: CLS
2 REM @ P.STANLEY
A GO SUB 9000
5 LET hs=0
10 LET m=0: LET sc=0: LET 1i=3
20 GO SUB 8000+m
100 IF INKEY*= " 8" THEN IF ATTR <y,x+l)<>4 T
HEN LET x = x + l: LET p*="/V"
110 IF INKEY*="5 " THEN IF ATTR <y,x-l)<>4 T
HEN LET x = x-l: LET p*="<?"
120 IF INKEY*= 11 6" THEN IF ATTR <y+l,x><>4 T
HEN LET y=y+l: LET p*= ,, / D "
130 IF INKEY*="7“ THEN IF ATTR <y-l,x)<>4 T
HEN LET y=y-l: LET p*=” O“
150 IF SCREEN* (y^)®"*- THEN BEEP .2,20: L
ET r=1: BORDER 2: LET d-f = -d-F: LET dg=-dg
180 IF SCREEN* <y,x)="." THEN PRINT AT yl,x
1; "M “: LET sc=sc+l: LET cl=cl+l: PRINT AT 0,6
;sc: BEEP .005,30: IF ci=c THEN GO TO 7000
190 IF y=11 THEN LET x=x+(30 AND x=l)-(30 A
ND x=31)
192 LET p=x: LET q=y: IF r THEN LET p=31-x:
LET q=21-y: LET r=r+l: IF r=50 THEN BEEP .2
,-10: BORDER 0: LET r=0
200 PRINT AT yl,xl5" "5 INK 6 5 AT y,x!p*
210 LET yl=y: LET xl=x
400 IF y = -f AND x = g THEN GO TO 6000+(500 AND
r )
500 LET -F1 =-f : LET gl=g: LET g=g + dg: LET -f=+ +
d-f
520 IF ATTR <-f,g)=4 THEN GO TO 1000
600 IF HOq AND NOT d-f THEN IF ATTR (-f 1 + (-f
l<=q)-(-f>q) , g 1) < > 4 THEN GO TO 1010
610 IF glOp AND NOT dg THEN IF ATTR <-fl,gl
+<gl<=p)-<gl>p))<>4 THEN GO TO 1200
40 Chomper
800 IF -f = 1 1 THEN LET g=g+(30 AND g=l)-(30 A
ND g=31)
810 PRINT OVER 1 ; AT -f 1 , g 1 ; " /? - ; AT -f,g;"*"
850 IF y = -f AND x = g THEN GO TO 6000+(500 AND
999 GO TO 100
1000 IF NOT dg THEN GO TO 1200
1010 IF NOT d-f THEN LET d-f = <-f 1 < =q) - (-f 1 >q) : L
ET dg=0: LET g=gl : LET F = -fl+d-f
1020 IF ATTR < -f , g) =4 THEN LET' d-f = -d-f : LET -f =
•f 1+d-f
1030 GO TO 800
1200 LET dg=(gl<=p)-(gl>p) : LET df=0: LET -f = -f
l: LET g=gl+dg
1210 IF ATTR (-f , g) =4 THEN LET dg=-dg: LET g=
gl+dg
1220 GO TO 800
6000 FOR -f = 1 TO 15
6010 PRINT AT y,x;"/V": BEEP
6020 PRINT AT y,xi"P“: BEEP
6030 PRINT AT y,x;"<?" : BEEP
6040 PRINT AT yjXj-G": BEEP
6050 NEXT -f
6060 FOR -f = l TO 50: NEXT -f
6065 PRINT AT y,xi“ LET 1
HEN GO SUB 8200: GO TO 100
6070 CLS : PRINT AT 7,0;"You
.05, -f
. 05, -f + .
. 05, -f + .
.05, -f+ .
i=li-l:
scored
25
5
75
IF 1 i >0 T
6080 IF sc >hs THEN LET hs = sc: PRINT AT 10,0;
"Well done that’s the new best score!!!”: G
0 TO 6100
6090 PRINT AT 10,0;"The high-score is ";hs;".
6100 PRINT AT 13,0;"Press any key to play aga
in.”: PAUSE 0: CLS : GO TO 10
6500 FOR -f = l TO 5: FOR g=2 TO 7: PRINT INK g
;AT y, x; " S" : BEEP .01,-f#5 + g: NEXT g: NEXT -f
6550 BORDER 0: LET r=0
6600 LET sc=sc+50: PRINT AT 0,6;sc
6650 LET -f = 16: LET g=16: LET gl=g: LET -fl=-f
6660 LET dg=-1: LET d-f=0: PRINT OVER 1; INK
5; AT -f , g; "P"
6670 GO TO 100
7000 BORDER 0: CLS : PRINT AT 3,0;“ ■ ■ |
■■■■■ ■ ■ ■ ■ ■ ■
Chomper 41
7010 PRINT AT 11,05"
7020 FOR P=-40 TO 40 STEP 4: BEEP . 05, -f : NEXT
7030 FOR -f = l TO 150: NEXT -f
7040 CLS : LET m=ro+10: IF m=40 THEN LET m=0
7050 GO TO 20
8000 PRINT AT i,4i"HAAAAAAAAAAAAAAAAAAAAAAAJ
B BE FALAE
C FALAE C FALAE B B B B D B
B B B C B C B C C B C B C B"
8001 PRINT" BBBBBBCBBBBBB
BBDDBDBDBDDBB B B B
B B B B B GAAAAA1 FAKAE GAAAAAI
B FAAI GAAE "
8002 PRINT " FAAAAAAAAAAAAAAAAAAAE
FAAJ HAAE B FAAALAAA
E C FAAALAAAE B B B B B
B B FAE B C C D C C B FAE B"
8003 PRINT " B B B B B B B B
B C FAI D GAAAI D GAE C B B B
B B B GAAAAAAAAAAAAAAAAAAAI
B B B GAAA
AAAAAAAAAAAAAAAAAAAAI "
8004 GO TO 8100
8010 PRINT AT 1,45" HAAAAAAAAAAAAAAAAAAAAAAAJ
B B B HAAAJ
C C C C C HAAAJ B B B B B B D B B B
B B B D C B B B B B B C D B"
8011 PRINT " B BBBBCBBBB B
B FAI D B D B D B D GAE B B B
B B B B FAAAAAI FAKAE GAAAAAE
B FAAI GAAE “
8012 PRINT " FAE FAAAE C FAAAE FAE
FAAJ B HAAE B FAAAAAJ
C D C HAAAAAE B B B B B B
B B FE FJ B GAAAI B HE FE B B
B B B B B B FAE B D HAAAJ D
B FAE B"
8013 PRINT “ B B B B B B
42 Chomper
B FAAAI FAI C GAE GAAAE B B
B B GAAAAAAAAAAAKAAAAAAAAAA
AI"
8014 GO TO 8100
8020 PRINT AT 1,4;" HAAAAAAAAAAAAAAAAAAAAAAAJ
B B B HAAE
FAAAE FAAAE FAAJ B B B
B B B B HE FAAAE FAAAE FJ B B"
8021 PRINT ” B D B B D B
B D FE FE FE FE D B B C
C B B GAAE FAAAE FAAAE FAAI
B FAAI GAAE"
8022 PRINT " FAAE FAAAE FAAAE FAAE
FAAJ HAAE B HAAE FAA
AE FAAAE FAAJ B B D D
B B C FE FE FE FE C B"
8023 PRINT " B C B B C B
B B GE FAAAE FAAAE FI B B B B
B B B GAAE FAAAE FAAAE FAAI
B B B GAAA
AAAAAAAAAAAAAAAAAAAAI"
8024 GO TO 8100
8030 PRINT AT 1,4;" HAAAAAAAAAAAAAAAAAAAAAAAJ
B B B C FJ
HAAAJ HAAE B B B B B B B
B B B B D D B B"
8031 PRINT " B B FI B B
B B HAAAJ B B B B
B B B B B D D D GAAE
B FAAI GAAE"
8032 PRINT " FAAE FE FAAAE FE FAAE
FAAJ HAAE B C C C C
HAAAJ HE C B B B B B B B B B B
B B B D D B D DEC B B“
8033 PRINT " B B B B D C B B
B B B HAAAJ B D B B B B B
B B B B B B D D D D D FI
B B B GAAA
AAAAAAAAAAAAAAAAAAAAI"
8100 PRINT AT 2,5; INK 3;"*";AT 2,27;“*“jAT 2
0,5;;AT 20,27;
8105 LET c 1=0: LET c = 5: FOR -f=2 TO 20: FOR g =
5 TO 27
8110 IF SCREEN* <f,g)=” " THEN PRINT AT -f,g;
" . LET c=c+l
Chomper 43
3120 NEXT g: NEXT -f
3140 PRINT AT 11,1;" ...“;AT 11,28;”... "
8200 LET x=16: LET y = 5: LET yl=y: LET xl=x: L
ET r=0: LET p$=”/“"
3210 LET -f = 16: LET g=x : LET gl=g: LET fl=-f
3220 LET dg=-l: LET df=0: PRINT OVER 1; INK
5; AT -f , g; "/?"
8250 PRINT AT 0,0;"ScoreAT 0,17;"High-scor
e : ” ; h s
8260 PRINT AT 0,115" " ; AT 0,11 ; < “/V" AND li>
l> + <" N" AND 1i> 2)
3999 RETURN
9000 RESTORE : FOR -f=USR "a" TO USR "s”+7: RE
AD g: POKE -f,g: NEXT -f
9010 DATA 0,255,0,0,0,0,255,0,66,66,66,66,66,
66,66,66
9020 DATA 0,24,36,66,66,66,66,66,66,66,66,66,
66,36,24,0
9030 DATA 0,248,4,2,2,4,248,0,0,31,32,64,64,3
2,31,0
9040 DATA 66,65,64,32,32,24,7,0,0,7,24,32,32,
64.65.66
9050 DATA 66,130,2,4,4,24,224,0,0,224,24,4,4,
2.130.66
9060 DATA 66,129,0,0,0,0,255,0,0,255,0,0,0,0,
129.66
9070 DATA 60,126,255,255,255,255,126,60,60,12
6,240,224,224,240,126,60
9080 DATA 60,126,15,7,7,15,126,60,60,126,255,
231,195,195,66,0,0,66,195,195,231,255,126,60
9090 DATA 60,126,219,201,255,255,255,170,0,24
2,133,229,21,149,93,0
9510 INK 6: PLOT 152,173: DRAW 7,-7: DRAW 8,8
9520 PLOT 232,173: DRAW 15,-35
9525 PRINT *’” 0 Paul Stanley"
9530 INK 7: PRINT ’’”A standard pacman-type g
ame, ”,"complete with power-pills, whichwhen
eaten give you. the chance " , “to eat the ghost
9540 PRINT INK 5’’"Move with the cursor keys
5-8. "
9550 PRINT INK 4’’"Press any key to play..."
: PAUSE 0: CLS
9999 RETURN
44
Battleships
This is the traditional game of Battleships to be played against the
computer. For anyone who hasn’t come across the game before (does
such a creature exist?), there are full instructions included in the listing.
The winner is the first to destroy all six enemy ships, and there are levels
of difficulty (1 or 2) which must be entered before battle can commence.
1 OVER 0: BORDER 7: PAPER 7: INK 0: CLS
2 REM 0 PAUL STANLEY
5 POKE 23658,9
10 GO SUB 9000
15 GO SUB 7000
20 GO SUB 8000
50 LET Q=16: LET P=18
100 PRINT OVER l;AT Q,P;"+"
110 PRINT AT 18,0,' PAPER 4;" YOUR
MOVE
120 PRINT AT 20,0; INK 3;"Move your cross ab
out with 5-8. Fire by pressing 9."
130 PRINT OVER 1 ; AT Q , P; ” + "
140 IF INKEY*= ,, 6” THEN LET Q=Q+1: IF <3=17 T
HEN LET Q=5
150 IF INKEY$=" 7" THEN LET <3 = Q-1: IF 0 = 4 TH
EN LET 0=16
160 IF INKEY$="8" THEN LET P=P+1: IF P=30 T
HEN LET P=18
170 IF INKEY$="5" THEN LET P=P-1: IF P=17 T
HEN LET P=29
180 IF INKEY$=" 9 11 THEN GO TO 200
190 PRINT OVER 1; INK 3;AT Q,P; U +"
195 BEEP .06,-10: GO TO 130
200 BEEP .05,30: PRINT AT Q,P; OVER 1;"+"
210 FOR F=1 TO 6
220 IF H < F)=0 AND 0 = F(F) THEN IF F = G<F) OR
P=G<F)+1 THEN GO TO 250
230 NEXT F
240 GO TO 300
250 LET H <F)=1: FOR G=7 TO 0 STEP -1: PRINT
INK g5 AT F(F) ,G(F)
260 FOR 1=0 TO G-X-8 STEP G+i: BEEP .06,1: NEX
Battleships 45
T I
265 NEXT G •
■**270 LET sc l = sc 1 + 1 : IF scl=6 THEN GO TO 2000
300 PRINT AT 13,05 PAPER 4;" MY
MOVE “ 5 PAPER 7; AT 20,05".
305 LET g = ( INT ( RND* 12 / SC ) ) *SC + 1 : LET -f = INT
(RND*12)+1
320 IF c$(F,G)="X" THEN GO TO 305
330 LET c $ (F , G) = 11 X "
350 LET y=-f+ 4: LET x=g + 3
360 GO SUB 1000
370 FOR i=1 TO 6
376 IF Y = Y(I) THEN IF X = X <I) OR X=X(I)+1 TH
EN GO TO 400
385 NEXT i
390 GO TO 100
400 FOR o=7 TO 0 STEP -1: PRINT AT y(i),x(i)
; INK o; ,, /?S"
420 FOR 1=0 TO o*3 STEP o+l: BEEP .06,1: NEX
T 1
425 NEXT £ o
430 LET c$<Y(i)-4,X(i)-3)="X“: LET c*(Y<i)-4
,X( i ) -2) = "X“
440 LET SC2=SC2+l: IF SC2=6 THEN GO TO 2100
450 GO TO 100
1000 OVER l:- PRINT INK 5 5 AT y-1, x-4 ; " ■■■ BSK
1005 BEEP .08,11
1010 PRINT AT y-1,x-4; "■■■ ■■■■ "5 AT y,x-4;”B
1020 PRINT INK 5; AT y-l,x-3;"BB ■■■ " 5 AT y,x
1025 BEEP .085,9
1030 PRINT AT y-1,x-3; BBB "iAT y,x-3;"BB
BBBB ";AT y+1,x-3;
1040 PRINT INK 55 AT y- 1, x-3j ".« • j « , /9" 5 AT y, x-
1045 BEEP .09 ; 7
1050 PRINT Af y-l,x-3i" /4";AT y,
B B"
1060 PRINT INK 5;AT y,x-25"B CUD "
46 Battleships
1065 BEEP .095,5
1070 PRINT AT y, x - 2 ;"WCMD "
1080 PRINT INK 55 AT y,x-1; n EFG “
1085 BEEP .1,4
1090 PRINT AT y,x-1; n EFG"
1100 PRINT INK 5;AT y,x-1J " HI "
1105 BEEP .105,2
1110 PRINT AT y,x-1; "HZ"
1120 PRINT INK 5 5 AT y,x;'V"
1125 BEEP .11,0
1130 PRINT AT y,x; "J"
1135 OVER 0
1140 RETURN
2000 CLS : PRINT AT 4,0; INK 3;"WELL DONE ! Y
OU DESTROYED ALL THE COMPUTER’S FLEET '*"
2050 GO TO 2200
2100 CLS : PRINT AT 4,0; INK 3;”BAD LUCK ! TH
E COMPUTER SUNK ALL YOUR SHIPS ! ! "
2200 PRINT AT 8,0;"PRESS ANY KEY TO PLAY AGAI
N. . . "
2300 IF INKEY$="" THEN GO TO 2300
2400 CLS : GO TO 20
3265 FOR 1=1 TO 6: IF Y=Y(I) THEN IF X=X(I)
THEN GO TO 8210
7000 FOR Y=20 TO 4 STEP -4: LET X=27-Y: GO SU
E 1000: NEXT Y
-7005 LET A*="BATTLESHIPS^ "
, 7010 PRINT AT 2,0;: FOR Y= 1 TO^S-K^FOR G=1 TO
13: PRINT PAPER /£f?\ INK RND#4 /a$ (GJ ; : BEEP .1
,G + F*3: NEXT G: nWt F ^-/ --J,
7020 PRINT AT 4,0;" -
7050 PRINT PAPER 4’" @ PAUL STAN
LEY
7100 PRINT ’’“Play the computer at battleship
7110 PRINT INK 4’ ’"The winner is the -first t
o destroy all six enemy ships."
yt 7120 PRINT INK 3’’"Full instructions are qiv
en as you proceed."
7130 PRINT PAPER 4’’"PRESS ANY KEY TO START
7140 IF I NKEY*= 11 " THEN
7150 CLS : RETURN
GO TO 7140
Battleships 47
00
(Y
8000 INPUT "ENTER SKILL LEVEL (1-EASY OR 2
-HARD) *5 SC
8005 IF SC<>2 AND SCOl THEN GO TO 8000
3010 FOR -f =5 TO 16: PRINT AT i , 4 5 " KKKKKK)
L KKKKKKKKKX^L " : NEXT -f
3025 PRINT aV0,0; PAPER 2; INK 7;"B ATT
L E SHIPS"
8030 PLOT 32,135: DRAW 95,0
8040 PLOT 144,135: DRAW 95,0
3050 FOR f = l TO 12: PRINT AT -f+4,2;CHR* <64 + f
) : NEXT -f
8060 FOR -f = l TO 9: PRINT INK 2;AT 3,-f+3}-f: N
EXT -f
8070 PRINT INK 25 AT 3,135 " OPO"
8030 PRINT AT 1,0} PAPER 55" YOUR SHIPS
MY SHIPS
8100 PRINT INK 3}AT 18,0;"You can place 6 sh
ips by typi nq ”"D 4" " (for ex ample). Then pres
s ENTER."
8200 DIM a$<3): DIM Y<6): DIM X(6): DIM H(6)
3206 FOR f=l TO 6
8210 INPUT a$
8220 IF a$ (1 )’ < " A" OR a*(l)>"L" THEN GO TO 82
10
3230 LET y=CODE a$(l)-60
3250 LET x=VAL a*<2 TO )+3
8260 IF x<4 OR x>14 THEN GO TO 8210
8265 FOR 1=1 TO 6: IF Y=Y(I) THEN IF X=X(I)-
1 OR X=X(I) OR X=X(I)+1 THEN GO TO 8210
3270 NEXT I
8280 PRINT OVER 1iAT y,x; "MN"
■)C 3290 LET Y(F)=Y: LET X(F)=X
8300 BEEP .04,10
8310 NEXT i
8400 PRINT AT 18,05"
8500 DIM F<6): DIM G<6)
3510 FOR F=1 TO 6
3610 LET Y=INT <RND*12>+5: LET X=INT (RND*11)
+ 13
8620 FOR G=1 TO 6
3630 IF Y=F(G) THEN IF X=G(G) OR X=G(G)+1 OR
..to
48 Battleships
X=G( G) - 1 THEN GO TO 8610
8640 NEXT G
3650 LET F(F)=Y: LET G(F)=X
8700 NEXT F
8720 DIM C*(12,12)
8740 LET scl=0: LET sc2=0
8300 RETURN
9000 FOR y=USR "A" TO USR ,, S"+7: READ x: POKE
y ,x: NEXT y
9010 DATA 0,0,0,0,224,248,252,254,255,255,255
,255,254,252,243,224
9020 DATA 31,31,31,255,255,31,31,31,224,240,2
43,243,243,243,240,224
9030 DATA 0,63,63,63,63,63,63,0,0,63,63,255,2
55,63,63,0
9040 DATA 0,224,240,248,248,240,224,0,0,0,60,
63,63,60,0,0
X?050 DATA 0,0,252,254,254,252,0,0,0,0,0,222,2
55,222,0,0
9060 DATA 128,128,128,123,123,128,128,255,129
,129,129,129,129,129,129,255
9070 DATA 0,2,34,59,63,255,127,0,0,0,32,48,12
0,126,124,0
9080 DATA 0,38,41,41,41,41,38,0,0,20,20,20,20
,20,20,0,0,76,32,63,72,30,94,0
9090 DATA 128,123,208,164,254,231,255,255,128
,123,136,151,200,174,252,255
9999 RETURN
49
Tanx
Tanx is a two player game in which two guns are placed on either side of a
range of randomly generated hills. Each player takes turns in attempting
to hit the gun on the other side by entering the angle and velocity of fire.
The winner is the player with the highest score after a total of seven hits
have been made. Your best chance of success is to use the smallest
possible angle of elevation for a given velocity and, at higher speeds, it
may be possible to fire through one of the hills.
1 REM-T A N X-
2 REM - @ PAUL STANLEY -
5 RANDOMIZE
10 BORDER 0: INK 7: PAPER 0: CLS
12 GO SUB 7000
15 LET scl=0: LET sc2=scl
20 GO SUB 9000
30 LET c=0: GO SUB 3000
35 IF RND >.5 THEN LET c = c + l: GO SUB 700
40 GO SUB 100
44 LET c=c+l
45 IF c = S THEN CLS : GO TO 30
46 GO SUB 700
47 LET c=c+l
43 IF c=8 THEN CLS : GO TO 30
50 GO TO 40
100 PRINT FLASH 1iAT 21,125"PLAYER 1": INPU
T "ENTER ELEVATION (0 TO 90) ”ia
110 IF a>90 OR a<0 THEN GO TO 100
115 INPUT "ENTER VELOCITY (2 TO 10) "5v
120 IF v<2 OR v>10 THEN GO TO 115
121 LET sl=fl
124 LET ol = -fl
130 LET max=100+5*v
140 LET e=a/10
160 FOR g=3 TO 255 STEP v
175 IF sl>0 THEN IF sl<175 THEN IF g>10 TH
EN IF POINT (g,si)=1 THEN LET k=g: BEEP .2.
0; BEEP .2,-15: GO TO 200
177 IF sl>0 THEN IF sl<175 THEN PLOT g,sl
130 LET s1=s1+(e AND q<max)-(e AND q>=max)
50 Tanx
190 LET e=e-(e/8 AND g<max)+(e/4 AND g>=max)
191 NEXT g
195 LET k=255
200 LET sl=21.5-sl/8: IF (INT sl=q2 AND k>24
7) OR ATTR ( q2,311=71 THEN GO TO 1000
205 LET e=a/10: FOR g=8 TO 255 STEP v
210 IF g = k THEN RETURN
220 IF ol>0 THEN IF ol<175 THEN PLOT OVER
1!g,ol
230 LET ol=ol+(e AND g<max)-(e AND g>=max)
240 LET e=e-(e/8 AND g<max)+(e/4 AND g>=max)
250 NEXT g
260 RETURN
483 IF c=9 THEN CLS : GO TO 30
700 PRINT FLASH 1;AT 21,125"PLAYER 2": INPU
T "ENTER ELEVATION (0 TO 90) “ ; a
710 IF a>90 OR a<0 THEN GO TO 700
715 INPUT "ENTER VELOCITY (2 TO 10) H ;v
720 IF v< 2 OR v>10 THEN GO TO 715
721 LET s 1 =-f 2
724 LET o 1 = -f2
730 LET max=155-5*v
740 LET e=a/10
760 FOR g=247 TO 0 STEP -v
775 IF sl>0 THEN IF sl<175 THEN IF g<239 T
HEN IF POINT (g,si)=1 THEN LET k=g: BEEP .2
,0: BEEP .2,-15: GO TO 300
777 IF sl>0 THEN IF sl<175 THEN PLOT g,sl
780 LET sl=sl+(e AND g>max)-(e AND g<=max)
790 LET e=e-(e/3 AND g>max)+(e/4 AND g<=max)
791 NEXT g
795 LET k=0
300 LET sl=21.5-sl/3: IF (INT sl=ql AND k<8)
OR ATTR (ql,0)=71 THEN GO TO 2000
305 LET e=a/10: FOR g=247 TO 0 STEP -v
810 IF g=k THEN RETURN
320 IF o1>0 THEN IF ol<175 THEN PLOT OVER
830 LET ol=ol+(e AND g>max)-(e AND g<=max)
840 LET e=e-(e/3 AND g>max)+(e/4 AND g<=max)
350 NEXT g
360 RETURN
1000 PRINT AT q2,31 ! 11 "
1010 FOR f=l TO 50: BEEP .002,RND*25: PLOT 25
Tanx 51
5-RND*20,<21-q2)*S+RND*15: NEXT f
1030 LET scl = sc1+1
1040 GO TO 2500
2000 PRINT AT q1,0;“ -
2010 FOR -f = l TO 100: BEEP .002,RND#25: PLOT 0
+RND*20, (21-ql ) *8+RND#15: NEXT -f
2030 LET 5c2=sc2+1
2040 GO TO 2500
2500 CLS : PRINT AT 10,5PLAYER 1 HAS ";scl;
“ POINT"; (“S" AND scion ; AT 13,5; “ PLAYER 2 H
AS ” ;sc2;" POINT”;<"S“ AND sc2<>l)
2510 IF sc 1+sc2=7 THEN PRINT AT 16,8; FLASH
1 ; 11 G A M E OVER”; FLASH 0;AT 19,2;”PRESS
ANY KEY TO PLAY AGAIN”: PAUSE 0: CLS : LET sc
1=0: LET sc2=sc1: GO TO 30
2520 PAUSE 200: CLS : GO TO 30
7000 LET q1=0: LET q2=10: LET e=21: LET v=31:
FOR f =21 TO 1 STEP -1
7010 PRINT INK 4 ; AT f,ql;"T";AT -f,q2; INK 5;
"A"; INK 6; AT f,e;"N"; INK 7;AT f,vJ"X*
7020 BEEP .03, f
7025 IF f>l THEN PRINT AT -f,qli" " ; AT f , q2; "
";AT f,e;” "; AT -f, v; - "
7030 LET q1=q1+.6: LET q2=q2+.2: LET e=e-.25:
LET v=v-.65
7040 NEXT -f
7050 PRINT "The 2 players take it in turn toe
nter the angle and velocity at which they wan
t to -fire to try and hit their opponent."
7060 PRINT "The shells must be fired over t
he hills but if you are lucky your shell may
be able to go through a hill (particular!
y at the higher speeds.)"
7070 PRINT "The winner is the player who hash
it his opponent the most after a total of 7 h
its have been made"
7075 PRINT "To stand the best chance of h
itting your opponent try to use the smalle
st possible angle of elevation."
7077 PRINT "The flashing caption at the b
ottom of the screen indicates whose go it is
7080 FRINT "PRESS ANY KEY TO START"
7090 PAUSE 0: CLS : RETURN
52 Tanx
8000 LET q=13-RND*13
8010 FOR -f =2 TO 29
8020 FOR g=21 TO q STEP -1
3030 PRINT INK 3; PAPER 5; AT g, -f 5 "C " + < "CC" A
ND -f =29 ) > AT g,f-2 j ( " CC " AND -f =2)
8040 NEXT g
8050 LET q=q+RND*4-RND*4
8060 IF q< 3 THEN LET q=4+RND*2
8065 IF q >20 THEN LET q=20
8070 NEXT i
8100 FOR -f = l TO 21
8110 IF SCREEN* <-f,0)<>“ " THEN PRINT INK 4
5 AT -f-1,0! BRIGHT 1} "A”
8114 IF SCREEN* <-f,0)<>" " THEN LET -fl=(21--f
) *8+16: LET ql=-f -1 : GO TO 8116
8115 NEXT -f
8116 FOR f = l TO 21: IF SCREEN* (f,31)O n " TH
EN PRINT INK 4;AT -f-1,31; BRIGHT 1 ; "B“
8117 IF SCREEN* <-f,31><>“ " THEN LET -f2=(21-
i )*8+16: LET q2=f-l: RETURN
3120 NEXT -f
9000 FOR -f =USR "a" TO USR "c"+7: READ g: POKE
■f , g : NEXT -f
9010 DATA 0,1,2,60,56,255,255,127,0,123,64,60
,28,255,255,127
9020 DATA 170,85,170,85,170,85,170,85
9100 RETURN
53
Defend
Yet again the Earth is under attack from the Alien hordes, and as always
the fate of humanity is in your hands. This time the aggressors are out to
capture humanoids for their debauched cloning experiments, and the
ever cooperative humans have gathered on the (randomly generated)
hillsides to watch the action. So it’s all down to you. You must shoot
down the Alien craft with your powerful laser before it can lay its hands
on the populace. Failing that, you have a chance of shooting it down once
it has the human in tow, but be warned: if the Alien craft is too high, the
humanoid loses its life and you lose points. And never forget — Aliens
invariably bite back!
1 REM Defend
2 REM @ PAUL STANLEY 1982
3 RANDOMIZE : BORDER 0: INK
S
4 LET h1=10
5 LET 1i=2
6 LET hs=0
7 GO SUB 3000
10 RESTORE : GO SUB 2000: GO
15 GO SUE 1170: BEEP .1,0
19 PRINT AT 21,8;"FUEL:";c*<
,14;“Hi:“;hs: frint over i;at
104,0: DRAW 80,0: DRAW 0,7: DRAW -80,0: DRAW
0,-7: IF 1i=2 THEN PRINT AT 21,1; INK 3 ;"CD“
20 PRINT OVER 1; INK 5;AT b,a; “B ";AT b+l,a
i a*
21 PRINT AT 0,0;"Captures:";cap;AT 0,22;“Sc
ore: ";sc;" ”
22 IF RNDC.08 AND b<=lt THEN GO SUB 500
27 PRINT OVER 1;AT b,a; “B ">AT b+l,a;a*
30 IF ATTR (b+2,a)=4 AND a*=" " THEN LET a
*="4": LET c=c+1: LET m=l: PRINT AT b+2,a; n "
37 IF m=l THEN LET b=b-INT (RND*3): GO TO
45
40 IF SCREEN* (b+2,a)=" " THEN LET b=b+<IN
T (RND*2))
42 IF SCREEN* <b-l,a)<>“ " THEN LET m=l: L
ET c=c+l
7: PAPER 0: CL
SUB 1000
TO 10-hl);AT 0
y , 15;b*: PLOT
54 Defend
45 IF b<1 THEN LET b=l
47 IF c = 3 OR b >17 THEN CLS : GO SUB 1000:
GO TO 19
50 LET a=a-1
55 IF a=-1 THEN LET a=31: LET m=0: IF a$="
4" THEN LET cap=cap+l: BEEP .1,0: BEEP .1,12
: BEEP .1,0: BEEP .1,12: LET a$=" “
56 PRINT OVER 1;AT y,155b$
57 LET y=y+(IN 63486=254 AND y<=lt)-<IN 634
36=253 AND y>l)
53 IF IN 61438=253 THEN IF b*=''CD a THEN L
ET b%=“££ n : GO TO 60
59 IF IN 61433=253 THEN LET b$="CZ>"
60 PRINT OVER 1;AT y,15; INK 6 5 b$
61 IF cap = 3 OR hl=10 THEN PRINT AT 0,95cap
: GO TO 800
66 IF IN 61438=254 THEN GO SUB 100
70 GO TO 20
100 LET i = 119*(b*= ,, 6V r " ) + 136* < b$= 11 “ ) : LET j
=(21-y)#8+3
106 PLOT i,j
110 IF b¥= "CD" THEN BEEP .05,20: DRAW 90,0:
BEEP .04,0: BEEP .03,-5: PLOT OVER 1; i , j : D
RAW OVER l;90,0
120 IF t>*=“££" THEN BEEP .05,20: DRAW -90,0
: BEEP .04,0: BEEP .03,-5: PLOT OVER 1;i,j:
DRAW OVER 15-90,0
121 IF y=b AND <<b$="CZ?" AND a>16 AND a<29)
OR (b %="££” AND a<15 AND a>2)) THEN GO TO 20
0+ <100 AND a$="4")
130 RETURN
200 LET rn=0: INK 6: PRINT AT b,a;”<9": BEEP .
03,-10: PRINT AT b,a 5 INVERSE 1 ; n G": BEEP .03
,-16: PRINT AT b,a j “G”: BEEP .03,-10: PRINT A
T b , a5 INVERSE 1 ; "<9" : BEEP .05,-20: PRINT AT
b, a5 11 (3" : BEEP .03,-3: PRINT AT b,a5” - : INK 7
: LET b=1+INT (RND#14): LET a=31
206 LET sc=sc+10
215 LET a*=" "
220 RETURN
300 BEEP .02,-5: PRINT AT b,ai H 6": BEEP .04,
-9: PRINT INVERSE 1 5 AT b,a;"(3": BEEP .04,-3:
PRINT AT b,a5 "6": BEEP .04,-10: PRINT AT b,a
Defend 55
305 LET -f =0: FOR d=b+l TO 19
310 PRINT AT d , a 5 "A": BEEP .02,d*2
320 LET -f=-f + l
325 PRINT AT d,a5" "
330 IF SCREEN* <d+l,a)<>" " THEN GO TO 360
350 NEXT d
355 GO TO 380
360 LET o=RND: IF o>.35 AND f >9 THEN LET sc
= sc - (50 AND sc >=50) -(sc AND sc<50): FOR + = -30
TO 0: PRINT AT d +1 , a 5 INK RND*4+ 3; "6 ": BEEP
. 03 ,-f: NEXT -f : PRINT AT d+l,a;" " : GO TO 372
370 PRINT AT d+l,a; INK 4; "A"
372 IF o< =.35 THEN GO TO 400
375 LET m=0
380 LET a*=" LET a=31: LET b=INT (RND*14>
+1: RETURN
400 FOR f = l TO 4
410 PRINT INK 4; AT d + l,a;"/9": BEEP .1,2: PR
INT INK 4; AT d + l,a;" " 5 AT d,a;"/4": BEEP .1,4
: PRINT AT d, a j 11 NEXT -f
420 PRINT AT d+l,ai INK 4;" >4”
430 PRINT OVER 1;AT d-1,a-25"I’M OK!“;AT d,
a;”I": FOR f=0 TO 100: NEXT i : PRINT AT d-l,a
-2; OVER 15 "I’M OK!"5 AT d,a; ” I " : GO TO 375
500 IF a>15 THEN LET dir=-30: LET stx=a*3-l
510 IF a< = 15 THEN LET dir=80: LET stx=a*8+8
520 PLOT stx,<21-b)*8+3: BEEP .01,40: DRAW d
i r , 0
525 PLOT OVER 1;stx,(21-b)*3+3: BEEP .01,20
: DRAW OVER 15 dir ,0
530 IF b=y THEN IF <a<27 AND dir=-80> OR (a
>4 AND dir =80) THEN GO TO 560
540 RETURN
560 PRINT AT y,15; OVER l;b*: LET a=15
565 PLOT OVER 15120,(21-y)*3+3: DRAW OVER
15 7,0
570 FOR v=l TO 6
580 PRINT INK 6;AT y + v/2,a+v5 “C" 5 AT y-v/2,a
+ v; "D" 5 AT y + v/2, a-v; "if* 1 ; AT y-v/2 , a-v 5 "F "
590 BEEP .01,30-v
600 PRINT AT y + v/2,a + vj" "5 AT y-v/2,a-v;" "5
AT y + v/2,a-v5” ”5 AT y-v/2,a+v5" "
610 NEXT v
620 LET 1i=1i-1
56 Defend
630 IF 1i< >0 THEN CLS : 60 SUB 1000: GO TO
19
800 FOR -f = l TO 2: RESTORE 8000: FOR a=l TO 8
: READ b.y: BEEF b,y: NEXT a: NEXT -f
810 PRINT AT 10,7; FLASH 1;“G A M E OVER
": PRINT : PRINT : PRINT : PRINT " Press an
y key to try again”
815 IF sc >hs THEN LET hs=sc
820 IF INKEY$<>“” THEN CLS : GO TO 10
825 GO TO 820
1000 LET h1= h1 + 1: LET y = 50: LET x=0
1010 PLOT x , y
1020 LET a=RND*20: LET b=RND*20-RND*20
1030 LET x=x+a: LET y=y+b
1040 IF x >251 THEN GO TO 1080
1050 IF y<10 OR y >60 THEN LET x = x-a: LET y=y
-b: GO TO 1020
1060 DRAW a,b
1070 GO TO 1020
1080 FOR x=0 TO 24 STEP 3
1090 LET a=INT (RND*6)+x
1095 LET f =20
1100 FOR b=4 TO 21
1110 IF SCREEN* (b,a)< >“ ” THEN PRINT AT b,a
; INK 4;”/?": LET b=b + 2
1120 NEXT b: NEXT x
1121 FOR T=ll TO 17: FOR y=0 TO 31: IF SCREEN
* <-f,y)<>" " THEN LET lt = -f-l: GO TO 1130
1122 NEXT y: NEXT -f
1130 LET y=5: LET c=0
1135 LET b*="CD"
1140 LET a=31: LET b=l
1160 LET m=0
1164 PRINT AT 21,1;”
1165 IF 1i=2 THEN PRINT AT 21,1; INK 3]"CD"
1168 RETURN
1170 LET sc=0: LET cap=0: LET c=0
1132 LET hl=0: LET 1i=2
1200 RETURN
2000 FOR a=USR "a” TO USR "g"+7: READ b: POKE
a, b: NEXT a
2010 RETURN
2020 DATA 28,28,8,62,8,8,20,34
2030 DATA 0,24,60,66.255.126.66.BIN 01100110
Defend 57
2.040 DATA 0,0, 199,BIN 11001100,255,255,3,0
2050 DATA 0,0,240,24,255,252,224,0
2060 DATA 0,0, 15,24,255,63,7,-0
2070 DATA 0,0,BIN 11100011,BIN 00110011,255,2
55,192,0
2080 DATA 196,9,BIN 10110000,6,208,74,145,BIN
01100100
3000 FOR a=l TO 30: PRINT AT RND*21,RND#26; I
NK RND*3+4;"DEFEND": BEEP .01,RND*10: NEXT a
3010 PAUSE 100: CLS
3020 PRINT "A -fleet of aliens have managed t
o get past defensive lines on Earth. One by
one they fly in with the sole intent of pic
king up Humanoids which have climbed to the t
op of the hills to see what is happening."
3030 PRINT : PRINT "Your job is to prevent th
e fleetfrom capturing the Humanoids. You ha
ve a powerful laser with which to shoot down
the aliens."
3040 PRINT : PRINT "CONTROLS ARE:
1.Down 2.
.Up 9.Change
direction 0. . . ..Fire"
3041 PRINT : PRINT : PRINT INVERSE 15"Press
any key to continue": PAUSE 0
3045 CLS
3050 PRINT : PRINT "You have been defeated wh
en 3 Humanoids have been captured.": PRINT
: PRINT "It is alright to shoot at alienswhic
h are clutching a Humanoid as long as he doe
s not fall too far (if he does you forfeit 50
points) . "
3060 PRINT "Note that only green Humanoids a
re attractive to the aliens.": PRINT : PRINT
"Don’t underestimate your enemy invader, he
may have a trick up his sleeve.": PRINT :
PRINT "Every so often the computer willtake
you to a new location at the expense of som
e of your fuelwhich if zero will end the game
.”: PRINT : PRINT INVERSE 1;"Press any key t
o continue": PAUSE 0
3065 CLS
3070 RETURN
8000 DATA .1,11,.1,11,.3,16,.05,11,.05,16,.05
,11,-05,16,1,20
58
Flying Bomb
The year is 1943. You are a wartime test-pilot under orders to conduct a
series of tests on a powerful new flying bomb which, if it proves its
mettle, could bring D-Day that much closer. Your instructions are to try
out the new wonder weapon on a Nazi bunker (situated at the bottom
right of your TV screen). You can only drop one bomb per run, and
because you’ve never grappled with these devices before, it’s going to
take you a while to get the hang of the controls. But do your best. Your
country is depending on you!
10 PAPER l: INK 7: BORDER 5
15 LET SC = 0
20 LET PO=0: LET CR=0: LET DIST=270000: LET
DC=DIST: LET TH=1000: LET D=0: LET H=4: LET
DK=D: LET HK=H: LET S=150
40 GO TO 610
100 CLS : PRINT INVERSE 1;"FLYING BOMB"
105 PRINT INVERSE 1;AT 2,05"SCORE: ";AT 2
, 6; SC
110 PRINT INVERSE 1;AT 0,14;"MLS TO TARGET:
”;AT 1,13;"HEIGHT FT: ";AT 2,185"SPEED
NTS:
120 PRINT AT 13,0; PAPER 5;"
150 PRINT AT 20,0; PAPER 2 ; “USE ’ A8cZ ’ KEYS FOR
HEIGHT,’NkM’FORSPEED AND ’K’ TO RELEASE BOMB
170 PRINT INK 3; AT 14,31; "£";AT 15,30; "FB" 5
AT 16,29; "FM" ; AT 1 7,23 ; " III "
199 REM **MAIN ROUTINE
220 PRINT INVERSE 1;AT 1,28!" " ;AT 1,28;
INT ((17-H)*100-20)
230 PRINT INVERSE 1!AT 0,28;" ” ; AT 0,28;
(27-D)/5
240 PRINT INVERSE 1;AT 2,28;" " ; AT 2,28;
S*2
250 PRINT AT HK,DK ;" ";AT H,D; INK 4;"/9S";:
LET HK=H: LET DK=D
300 LET A=PEEK 23556: IF A=255 THEN GO TO 3
60
Flying Bomb 59
305 IF A= 77 THEN LET 3=S+5: IF S>195 THEN
LET S=195
310 IF A=78 THEN LET S=S-5: IF S<45 THEN P
RINT AT 16,0; FLASH 15"STALLED!": GO TO 850
320 IF A=65 THEN LET H=H-.1
330 IF A=90 THEN LET H=H+. 1 .* IF H>16.8 THEN
GO TO 750
340 IF H<2.2 THEN LET H=2.2
350 IF A=75 THEN PRINT INK 4; AT HK, DK ; "AC 11
;: GO TO 500
360 IF H >13 AND D>27 THEN GO TO 780
399 REM **MOVE CLOSER
400 LET DC=DC-S: LET D=INT ((DIST-DC)/TH)
405 IF D >30 THEN GO TO 810
410 GO TO 200
500 REM **BOMB DROPPED
510 LET Y=1: LET V=H+1: LET F=D+1: LET HK = V:
LET DK=F
530 LET X=Y*Y*<l-S/200)
531 BEEP .01,-20
535 LET V=V+X/40: LET F=F+Y/8
550 IF VMS AND F>28 THEN GO TO 710
570 IF V >18.5 OR F>31 THEN GO TO 810
575 PRINT AT HK,DK;" ";
580 PRINT AT V,F; “D"
585 LET HK = V: LET DK=F
590 LET Y=Y+l: GO TO 530
600 REM ##initialisation
610 FOR x=0 TO 7: READ a,b,c: POKE USR "A "+ x
, a: POKE USR "5 ,, +x,b: POKE USR "C"+x,c: NEXT
620 FOR x=0 TO 7: READ a: POKE USR ”Z>"+x,a:
NEXT x
630 FOR x=0 TO 7: READ a: POKE USR “£'• + *,*:
NEXT x
640 FOR x —0 TO 7: READ a: POKE USR "F”+x,a:
NEXT x: GO TO 100
699 REM ** WON GAME
710 PRINT AT HK,DK5" "5
720 PRINT AT 16,115 FLASH 1;“CONGRATULATIONS
725 LET SC = SC+l: PRINT INVERSE 15 AT 2,6;SC
730 PRINT PAPER 7; INK 2; FLASH 15 AT 14,31;
";AT 15,30;" ";AT 16,29;" " ;AT 17,28;"
60 Flying Bomb
735 FOR X=1 TO 10: BEEP .01,10: BEEP .01,+5:
BEEP .01,15: NEXT X
740 FOR X=1 TO 100: NEXT X: RESTORE : GO TO
20
749 REM #DITCHED
750 PRINT INK 2;AT 16,11; FLASH 1;"DITCHED!
": GO TO 900
779 REM **CRASH ON TARGET
780 PRINT AT 16,11;"THAT’S CLEVER!": GO TO 7
30
800 REM **LOST GAME
810 PRINT AT HK,DK;"
320 PRINT INK 2; PAPER 6;;AT 16,11; FLASH 1
; " LOST ! "
830 GO TO 900
340 REM fcSTALLED
350 FOR X=H TO 17: PRINT INK 4;AT X,D;" ”;
AT X+l,D; "AB": NEXT X
900 FOR X=1 TO 10: BEEP .05,-10: BEEP .05,5:
BEEP .05,-5: NEXT X
910 FOR X=1 TO 100: NEXT X
920 RESTORE : GO TO 20
998 STOP
999 REM plane
1000 DATA 192,0,0,64,0,0,127,248,248,26,175,1
75,15,254,254,0,190,0,0,127,0,0,190,0
1009 REM #bomb
1010 DATA 0,0,0,0,0,190,127,190
1019 REM dam
1020 DATA 64,64,64,64,64,64,64,255
1030 DATA 1,3,7,15,31,63,127,255
3999 STOP
4000 PAPER 7: INK 0: BORDER 7: CLS
3999 STOP
9000 FOR y=0 TO 7: INPUT a*: LET t=0: FOR x = l
TO 8: LET t=t+2~<3-x)*VAL a*(x): NEXT x: PRI
NT t
9010 POKE USR "4"+y,t
9020 NEXT x: NEXT y
9030 PRINT "4"
61
Radiopower
This is a multi-player game, with each player running a radio station in
competition with other players’ stations. After registering your station
you then get the choice of show presenters to hire. Some are high priced,
some are cheap, and the expensive ones are better audience “draws”.
The choice of presenters will effect how well your station will produce
the type of show you want, since the presenters near the beginning of the
alphabet (Aardvark, Boulder, etc.) are great for talk shows and news,
but no good for music. Those in the middle are OK for all sorts of shows
in an average way, so that Jetsetter and Ricky Radio can handle general
shows, with say 50% music but the ace DJs you need for a pop radio
station are to be found near the end of the alphabet, and you need these
for high percentages of music on your programs.
The percentage of music you are going to have on your station has to be
entered, and this is followed by the number of radio cars you want to
run, to be used for covering local events and thus typifying your
community spirit.
Your station is funded by advertising, so you have to spend money on
promotion, to get the populace listening, and hence make advertising on
your station desirable.
The computer then displays the broadcast area for all the stations,
spreading the call-sign of the stations over the map. Another annual
review comes up and you get the chance to alter the composition of your
station to get a greater edge. Play continues until someone conquers the
airwaves over the South Coast, stations with no listeners dropping out of
the game.
1 REM RADIOPOWER B
Y H. WALWYN FOR THE CBM 64
CONVERTED FOR THE 48K S
PECTRUM BY ANDY GREEN
10 RESTORE : PRINT PAPER 2; INK 6; FLASH 1
i " INITIALISING"; FLASH 0!" PLEASE WAIT.
20 POKE 23658,255: REM CAPS LOCK
30 DIM I$<13>: DIM H*(15>: DIM G$(10): DIM
62 Radiopower
N$<25,15): DIM S$(25,15>: DIM P<4,25): DIM T(
25,2): DIM T$(25,13): DIM S(25): DIM R<25)
40 DIM B*(23,15): DIM M(23): DIM B(23): DIM
N (23)
50 FOR 1=1 TO 23: READ B$(I),M(I),B(II: NEX
T I
59 REM ** DATA FOR PRESENTERS’NAMES, QUALIT
Y RATING AND PRICE
60 DATA "ARNOLD AARDVARK",1,50000
61 DATA "BRIAN BOULDER ", 2,30000
62 DATA "CLARA CUTHROAT",5,45000
63 DATA "DINA DINAMICK",10,25000
64 DATA "EDDIE EEL",15,10000
65 DATA "FREDA FOOLISH", 20,10000
66 DATA "GERRY GULLIBLE", 25, 10000
"HARRY HATEFUL",30,15000
"IZZY IDLETALK",35,10000
"JOLLY JETSETTER",40,25000
"KING KNIFE",50,20000
"MOLLY MUD”,50,10000
" NED NORMAL " , 50,20000
'POLLY PERSPEX",60,10000
74 DATA "RICKY RADIO",65,25000
75 DATA "SALLY SONIX",70,15000
76 DATA "TOMMY TAPE " , 75,30000
77 DATA "UNCLE USELESS ", 80,10000
"VICTOR VROOM",85,25000
"WALLY WETLOCK",90,10000
80 DATA "XANDRA XEXY" , 95,40000
81 DATA "YALE YESTERYEAR ", 98,45000
82 DATA "ZOOT ZIEGLER",99,50000
100 DIM D*<22,32)
105 FOR 1=1 TO 20: READ D$(I)
106 NEXT I
107 FOR 1=1 TO 25: LET P(2,I)=100000: NEXT I
109 DATA "++++++++++++++++++++++++++++++
110 DATA "+ STOCKBRIDGE o
112 DATA "+SALISBURY o WINCHESTER o
113 DATA ”+
116 DATA "+ TWYFORD o
117 DATA "+ ROMSEY o P/FLD i
113 DATA "+ CHNDLRS/FORD o
119 DATA "+ EASTLEIGH o
120 DATA "+ B/WALTHAM o
DATA
68 DATA
69 DATA
7© DATA
71 DATA
72 DATA
73 DATA
78 DATA
79 DATA
Radiopower 63
121 DATA
122 DATA
123 DATA
124 DATA
125 DATA
126 DATA
127 DATA
128 DATA
+F/BRIDGE o
+ TOTTON
LYNDHURST o
RINGWOOD o
B/HURST
## o SOUTH/TON+
##WICKHAM a +
######
129 DATA " +C /CHURCH MTH#o+ “
130 DATA "+o B/MTH#######################+
131 DATA "++++++++++++++++++++++++++++++++"
190 FOR 1=1 TO 20: READ T<I,1),T(I,2): NEXT
I: REM ** READ IN COORDINATES OF THE VARIOUS
TOWNS
191 DATA 3,23,4,11,4,27,6,28,7,13,7,30,8,21,
9,24,10,27,11,10,12,15
192 DATA 13,20,14,28,15,13,16,11,16,30,17,14
,19,10,19,30,20,1
193 FOR 1=1 TO 20: READ T$(I): NEXT I: FOR I
=1 TO 20: READ S(I): NEXT I: REM ** READ IN P
LACE NAMES
194 DATA "STOCKBRIDGE","SALISBURY","WINCHEST
ER”, " TWYFORD " , "ROMSEY", 11 PETERSFI ELD "
195 DATA "CHANDLERS FORD”,"EASTLEIGH“,"BISHO
PS WALTHAM","FORDINGBRIDGE","TOTTON”
196 DATA "SOUTHAMPTON","WICKHAM","LYNDHURST"
,"RINGWOOD","FAREHAM","BROCKENHURST"
197 DATA "CHRISTCHURCH","PORTSMOUTH","BOURNE
MOUTH",1,3,4,2,2,2,1,2,1,1,1
198 DATA 5,1,1,2,2,1,1,5,5
199 REM ** DISPLAY MAP
200 PAPER 4: BORDER 5: INK 0
205 CLS : PRINT AT 2,0!
210 FOR 1=1 TO 20: PRINT PAPER 2; INK 6;D$(
I): NEXT I
250 FOR 1=1 TO 25: IF N*<I,15)<>"#” THEN GO
TO 270
260 PRINT AT T(I,1),T<I,2)j PAPER 3; INK 5;
S$(1,1)
270 NEXT I
300 PRINT AT 0,0! PAPER 6;"SPACE"; PAPER 4;”
FOR AUDIENCE REACTION. PAPER 5;"ENTER"
; PAPER 4;" TO SPEAK TO ME."
310 LET A$=INKEY$: IF A$="” THEN GO TO 310
64 Radiopower
315 IF A*=" ” THEN GO TO 700
317 IF A$< >CHR$ 13 THEN GO TO 310
320 GO SUB 5000
693 GO TO 200
699 REM ** GOSUB DISPLAY REACH ON MAP
700 PAPER 3: BORDER 1: INK 6
702 CLS : PRINT "HAS EVERYONE DONE THEIR ANN
UAL PROGRAMME REVIEW?(Y,N)";
703 LET A*=INKEY*: IF A*="" THEN GO TO 703
704 IF A$="N " THEN PRINT A*: GO TO 200
705 IF A*< > *Y" THEN GO TO 703
706 PRINT A*
707 CLS : PAPER 4: BORDER 4: INK 0
710 PRINT AT 2,0;: FOR 1=1 TO 20: PRINT PAP
ER 3;D*<I): NEXT I
730 FOR 1 = 1 TO 25: IF N* ( I , 15 )<>“•#■ ” THEN GO
TO 795
790 PRINT AT T(I,1),T(I,2); PAPER 5; INK 2\ "
<S“
795 LET P(3,I)=0: NEXT I
797 LET QQ=1
300 LET PP=0: FOR 1=1 TO 25
310 IF N*<I,15)<>THEN GO TO 950
815 IF P<1,I)*10<QQ THEN GO TO 950
320 LET PP=1
825 LET PX=T(I,2): LET PY=T(1,1)
330 LET DX=INT (RND*3)-1
335 LET DY=INT (RND*3)-1
340 LET K=CODE SCREEN* <PY+DY,PX+DX>
860 IF K=35 OR K=64 OR K=CODE S*(I) THEN GO
TO 930
870 IF K=43 THEN GO TO 825
374 FOR M=1 TO 20: IF N*<M,15)<>"*" OR S*(M)
=S*(I) THEN GO TO 376
375 IF CODE S*(M,1)=K THEN GO TO 830
376 NEXT M: GO TO 900
880 LET P(3,10 =P(3,M>-1
385 FOR X=1 TO 5: PRINT AT PY+DY,PX+DX"
836 FOR Z=1 TO 50: NEXT Z: PRINT AT PY+DY,PX
+DX>” -: NEXT X
900 PRINT AT PY+DY,PX+DX; PAPER 1; INK 6; FL
ASH 1;S*(I,1): BEEP .02,3
904 LET FY=PY+DY: LET PX=PX+DX: LET P(3,I)=P
Radiopower 65
(3,I)+l
910 GO TO 950
930 LET PY=FY+DY: LET PX=PX+DX
950 NEXT I
960 LET QQ=QG+1
970 IF PP=0 THEN GO SUB 9000: GO TO 1000
980 GO TO 800
1000 PRINT AT 0,0?"THAT’S THE AUDIENCE REACH
AT THEMOMENT.": FOR Z=1 TO 75: NEXT Z: PRINT
AT 0,0;"PRESS SPACE FOR STATION DETAILS.
1010 LET AS=INKEYS: IF AS<> " " THEN GO TO 10
10
1100 REM
1114 FOR 1 = 1 TO 20: IF NS (I,15)0"# ” THEN GO
TO 1118
1116 LET P<2,I)=P<2,I)+P(3,I)*1500
1117 BORDER l: GO SUB 2000
1118 NEXT I
1122 PRINT "SPACE TO RETURN TO BASIC MAP"
1123 IF INKEYSO” " THEN GO TO 1123
1125 GO TO 200
2000 CLS : PRINT --
2010 PRINT "RADIO "5SS<I)’"BASED IN ”;TS<I)
2020 PRINT ’"STATION MANAGER: "5 NS(I)
2040 PRINT ’"AUDIENCE FIGURES. . . ";P(1,I) 5 "
2050 PRINT "AUDIENCE APPRECIATION...";P<3,I)
2060 PRINT ’"MONEY NOW AVAILIBLE. . .£";P < 2,I)
2062 FOR J=1 TO 23: IF N(J)=I THEN PRINT "PR
ESENTER. . . " SBS(J)
2063 NEXT J
2070 PRINT --”
2030 PRINT "SPACE FOR MORE DETAILS"
2090 IF INKEYSO" " THEN GO TO 2090
2100 RETURN
4999 REM ** INPUT NEW MOVE
5000 GO SUB 9000: PRINT AT 0,0;"IS THIS A NEW
STATION? (Y/N)"
5003 IF INKEYSO "Y” AND INKEYSO "N" THEN GO
TO 5003
5004 IF INKEYS="Y" THEN GO TO 5006
5005 GO TO 5030
5006 GO SUB 9000: PRINT AT 0,0;"WHAT IS YOUR
66 Radiopower
NAME PLEASE ?": INPUT LINE H$: LET H$<15)="*
5008 GO SUB 9000: PRINT AT 0,0;"THE NAME OF Y
OUR STATION ? ": INPUT LINE G*
5010 FOR 1=1 TO 25: IF S*<I,1)=G*<1) THEN GO
TO 5013
5012 NEXT I: GO TO 5015
5013 PRINT AT 0,0; "SORRY BUT PLEASE CHOOSE AN
OTHER NAME”: FOR 1=1 TO 200: NEXT I: GO SUB 9
000: GO TO 5008
5015 GO S.UB 9000
5020 PRINT AT 0,0;"RADIO:";G$’"MANAGER:";H$
5021 FOR 1=1 TO 100: NEXT I: GO SUB 9000
5022 PRINT AT 0,0;"BASED IN WHICH TOWN?<PLEAS
E ".."ENTER "; INVERSE 1 ; " FULL" ; INVERSE 0;" P
LACE NAME)": INPUT LINE I*
5023 GO SUB 9000: FOR 1=1 TO 25: IF T$(I)=I*
AND N*<I,15)="*" THEN GO TO 5026
5024 IF T$(I)=IS THEN GO TO 5028
5026 NEXT I: GO SUB 9000: PRINT AT 0,0;"SORRY
BUT THAT PLACE IS NOT"’"AVAILABLE.“: FOR 1=1
TO 100: NEXT I: GO SUB 9000: GO TO 5022
5027 RETURN
5028 PRINT AT 0,0;"OK. CONGRATULATIONS ON A N
EW STATION OPENING. GOOD LUCK!"
5029 PRINT AT T(I,1),T(I,2)J FLASH 1;“@": LET
S*<I)=GS: LET N*(I)=H*: FOR 1=1 TO 100: NEXT
I : RETURN
5030 CLS : PRINT "ENTER YOUR NAME PLEASE:- ";
: INPUT LINE H*
5038 FOR 1=1 TO 25: IF N*(I, TO 14)=H*< TO 14
) THEN GO TO 5050
5040 NEXT I: PRINT ’"SORRY BUT I HAVE NO RECO
RD OF THAT NAME": FOR 1=1 TO 100: NEXT I
5045 RETURN
5055 CLS : PRINT "RADIO “;S$(I)’”OF ";T$(I)
5060 PRINT "STATION MANAGERN$ ( I )
5070 PRINT "a###############################"
5080 PRINT "MONEY AVAILABLE...£"JP(2,I)
5090 PRINT "ft###############################"
5100 PRINT INVERSE l;"NO. NAME
PRICE
5110 FOR J=1 TO 23: IF N(J)<>0 THEN GO TO 51
30
Radiopower 67
5115 IF RND >.45 THEN GO TO 5130
5120 POKE 23692,255: PRINT J;TAB 6i B*(J);"
H iB<J)
5130 NEXT J
5150 PRINT "DO YOU WANT TO HIRE ONE? (Y/N)"
5151 POKE 23692,255: LET AS»=INKEY*: IF A$<>”Y
" AND A*<>"N" THEN GO TO 5151
5152 IF A$="N" THEN GO TO 5165
5153 PRINT AT 20,0;"WHICH PRESENTER DO YOU WA
NT?"’"NUMBER..."5
5154 GO SUB 8000
5155 LET B=VAL H %: IF B=100 THEN GO TO 5165
5156 IF B >23 THEN GO TO 5153
5157 PRINT A$: PRINT "YOU HAVE £*?P(2,I)
5160 LET N(B)=I: PRINT 'B*<B>!" JOINSRAD10
"; s* < I >;" M ! “
5165 LET P=0
5170 PRINT "PRESENTERS ON STATION..."’: LET B
=0: FOR J=1 TO 23: IF N(J)=I THEN GO TO 5180
5175 NEXT J: GO TO 5195
5180 LET B=l: PRINT J5 TAB 5 j B$(J) 5 T AB 25;B(J)
5185 LET P=P+B(J): GO TO 5175
5195 IF B=0 THEN PRINT "NO SPECIAL PRESENTER
S ON STATION"
5200 PRINT ’"YOUR WAGE BILL IS £”;P
5202 IF P=0 THEN GO TO 5300
5205 PRINT "DO YOU WISH TO FIRE ANY OF THEM?<
Y/N) "
5210 LET A*=INKEY*: IF A*<>"Y” AND A*<>*N" TH
EN GO TO 5210
5220 IF A$="Y" THEN GO TO 5230
5225 GO TO 5300
5230 PRINT "WHICH ONE...NO.”
5231 GO SUB 8000: LET N=VAL H$
5232 IF N>23 THEN GO TO 5231
5235 IF N (N > < > I THEN GO TO 5300
5240 LET N(N)=0: LET P=P-B(N)
5250 PRINT B*(N)S“ LEAVES RADIO ”5S*<I)
5300 LET P(2,I)=P(2,I)-P: IF P(2,I)<0 THEN G
0 TO 5320
5310 PRINT --"
5311 PRINT "YOU NOW HAVE £";P(2,I)
5315 GO TO 5350
5320 PRINT "YOU HAVE BANKRUPTED YOURSELF !"
68 Radiopower
5325 LET P(2,I)=P(2,I)+P
5330 PRINT ’"THEREFORE YOU MUST FIRE ONE OF T
HEM...": 60 TO 5165
5350 PRINT "-■*
5355 PRINT "WHAT PERCENTAGE OF YOUR OUTPUT I
S GIVEN OVER TO MUSIC? (0-100)"
5357 GO SUB 8000: LET R=VAL H*
5360 PRINT "-■*
5365 PRINT ’"RADIO CARS COST £10000 EACH.”
5367 IF R(I)=0 THEN GO TO 5370
5368 IF RND >.4 THEN PRINT "ONE OF YOURS HAS
FALLEN APART": LET R(I)=R(I)-1
5370 PRINT "YOU HAVE "5R(I);" RADIO CARS, “’N
% ( I )
5380 PRINT "HOW MANY MORE DO YOU WANT NOW?”
5381 GO SUB 3000
5382 LET PR=VAL H*: IF PR+R(I)=0 THEN PRINT
"WHAT HAVE YOU GOT AGAINST RADIO CARS?”
5383 IF PR+R(I)>5 THEN PRINT "COME ON NOW, N
0 ONE NEEDS MORE THAN 5.": GO TO 5380
5385 PRINT "YOU NOW HAVE ”JPR+Rtl);” RADIO CA
RS, "’N$(I)
5390 LET P(2,I)=P(2,1)-PR*10000
5400 IF P(2, I)<0 THEN PRINT "NOT ENOUGH MONE
Y !!": LET P(2,I)=P(2,I)+PR*10000: GO TO 5380
5402 LET R(I)=R(I)+PR
5405 PRINT ’"YOU HAVE £“J P(2,I) , " LEFT”
5410 PRINT "-"
5415 PRINT ’"HOW MUCH TO SPEND ON PROMOTOION?
": GO SUB 8000: LET PM=VAL H$
5420 LET P(2,I)=P(2,I)-PM: IF P(2,I)<0 THEN
PRINT "NO CASH!!!": LET P(2,I)=P(2,I)+PM: GO
TO 5415
5600 PRINT "-»
5605 PRINT ’’"OK. THANK YOU VERY MUCH "’N*(I)
5700 LET P1=PM*(1+RND)+R(I)*10000*(2+RND)+200
00*RND
5710 FOR J = 1 TO 23: IF N(J)OI THEN GO TO 57
50
5720 LET PP=ABS (R-M(J))
5730 LET P1=P1+B(J>/10*<100-PP)
5750 NEXT J
5800 POKE 23692,255: PRINT ’"YOUR PREVIOUS AU
DIENCE FIGURES WERE...";P(1,I);"%"
Radiopower 69
5810 PRINT --"
5815 LET PI=INT <P1/10000)/10
5820 PRINT ’"YOUR CURRENT AUDIENCE FIGURES
ARE. . . ”!PI 5
5830 IF P1>0 THEN GO TO 5845
5835 INVERSE 1: PRINT ’“I’M AFRAID THAT NO ON
E APPEARS TO LISTEN TO YOUR STATION AND
5838 PRINT "THEREFORE YOU HAVE BEEN REMOVED "
5840 PRINT "FROM YOUR JOB ! ! !
5841 PRINT "RADIO ";S*(I)5” IS
5842 PRINT, PAPER 2; INK 6\ FLASH l;"OFF THE
AIR FLASH 0!" SORRY ABOUT THAT, BUT THAT’
S SHOW BUSINESS !!! ": INVERSE 0
5843 LET S*<I>=”": LET P<2,I)=10000: LET P(l,
I)=0: GO TO 5900
5845 LET P(1,I)=P1
5850 PRINT --"
5855 PRINT ’"RADIO ";S$(1)5" IS"
5860 PRINT ’"STILL ON AIR..." ” "YOUR AVAILABL
E MONEY IS"’"£"!P(2,I)
5870 PRINT ’"...WE SHALL HAVE TO SEE WHAT
HAPPENS TO YOUR REVENUE WHEN THENEW FIGURES A
RE TAKEN INTOACCOUNT. "
5900 PRINT INVERSE i;"SPACE"i INVERSE 0?” TO
RETURN TO MAP”
5910 IF INKEYSO” ” THEN GO TO 5910
5920 RETURN
7999 STOP
3000 INPUT LINE H$: FOR X=1 TO LEN H$: IF CO
DE H$(X><48 OR CODE H*(X)>57 OR H*<X>=“ " THE
N GO TO 8000
8010 RETURN
9000 PRINT AT 0,05”
" : REM
64 Spaces
9010 RETURN
9998 STOP
9999 BORDER 7: PAPER 7: INK 0: CLS
70
Scuba
OK, so it’s on with the face-mask and flippers and over the side with
you. The idea is to catch as many fish as you can for supper. You’re
armed with a simple fish spear and you just have to swim within reach of
your prey to catch it. The trouble is, there are some nasty looking sharks
with their eyes on man meat, and whilst most of the time they seem quite
content to live and let live, sharks have a reputation for being less than
predictable! The only other serious problem facing you is that your tank
only holds three minute’s worth of oxygen, so every now and then you’ll
have to return to your raft for fresh supplies. The fish (and sharks) are
programmed to change course at random and you will find it surprisingly
hard to catch a fish once it is in a ‘panicky’ mood.
1 REM SCUBA
BY H. WALWYN FOR THE COMMODORE
64
CONVERTED FOR THE 16/48K S
PECTRUM BY ANDY GREEN
4 LET AIR=0
5 POKE 23658,255: REM ## PUTSMACHINE INTO
CAPS-LOCK MODE
10 LET Z*=""
11 LET P=0
20 GO SUB 9000
25 GO SUB 5000
27 GO SUB 3000
30 REM T$() HOLDS CHARACTER TYPE FOR FISH
/SHARK
50 REM ** CHARACTER NUMBERS ARE AS FOLLOW
51 REM 1,2,3 ARE SHARKS
52 REM 4,5,6 ARE FISH
54 REM 7 IS THE SWIMMER
60 REM X ( ) AND YO ARE SCREEN COORDINATES
61 REM S$0 HOLDS THE 12 CHARACTERS SE
E 5000-
62 DIM X<7): DIM Y<7): DIM S$(12): LET S*="
! " "#*%&’(>#+," : REM DOUBLE QUOTES'"' A AREINTENT
IONAL
63 REM DO ARE FISH DEPTH
64 DIM D(6>: DIM T$<6)
STEPS
Scuba 71
65 REM MO ARE FISH MOVE STEPS
66 DIM M(6)
67 REM SO ARE FISH RANDOM ISERVARIABLES
68 DIM S(6): DIM U(6)
80 REM UO ARE CHARACTER COLOURS
81 REM SHARKS ARE ALWAYS CYAN
82 LET U(1)=5: LET U<2)=5: LET U<3)=5
83 REM FISH ARE DIFFERENT COLOURS ...
84 REM FISH <#4) IS RED
35 LET U(4)=2
86 REM FISH <#5) IS WHITE
87 LET U f 5)=7
88 REM FISH (M6) IS YELLOW
89 LET U(6)=6
90 REM SWIMMER IS GREEN
91 LET MC=4
99 REM ** S=SWIMMER TYPE **
100 GO SUB 4000
120 REM ** FISH SETUP
130 FOR K=4 TO 6
135 LET S(K)=1
140 LET X<K)=0: LET Y(K)=INT <RND*11+11): LE
T D(K)=INT (RND*3-1)
165 NEXT K
190 LET X(7)=23: LET Y<7>=4: LET S=l: LET T=
1
210 LET K*=INKEY*
211 PRINT PAPER 0! INK 4;AT Y<7),X<7>5“ ":
IF z*="~" THEN PRINT AT Y( 7 ) ,X < 7) >
219 LET AIR=AIR-1
220 IF K$="X" THEN GO TO 230
221 IF T=1 THEN LET AIR=130: GO TO 300
222 IF K*="E" THEN GO TO 240
223 IF Y(7)<1 THEN GO TO 300
224 IF K*="F" THEN GO TO 250
226 IF K*="S" THEN GO TO 260
229 GO TO 300
230 IF T=1 AND Y<7)>4 THEN LET T=0: LET MC=
5
232 LET Y(7)=Y(7)+l: IF S=12 THEN LET S-ll:
GO TO 234
233 LET S=12
234 IF Y(7)>21 THEN LET Y(7)=21
236 GO TO 300
72 Scuba
240 LET Y(7)= Y(7)-1: IF S=12 THEN LET S=1X:
GO TO 244
242 LET S=12
244 IF Y(7)<5 AND X<7)>20 AND X<7)<26 THEN
GO TO 243
245 IF Y(7)<5 THEN LET Y<7)=5
246 GO TO 300
243 LET X(7)=23: IF Y<7)<5 THEN LET MC=3: L
ET T= I
249 GO TO 300
250 LET X(7)=X<7)+1: IF (S<5 AND S>2) THEN
LET S=ll: GO TO 254
251 IF S=1 THEN LET S=2: GO TO 254
252 LET 3=1
254 IF X(7)>31 THEN LET X(7)=31
258 GO TO 300
260 LET X(7)=X(7)-1 : IF S<3 THEN LET S=12:
GO TO 264
261 IF 3=3 THEN LET 3=4: GO TO 264
262 LET 3=3
264 IF X ( 7) < 0 THEN LET X<7)=0
263 GO TO 300
300 LET 2$=SCREEN$ (Y(7),X<7)): PRINT AT Y<7
) f X < 7) 5 PAPER 0; INK MC;S*<S>
320 IF CODE Z*>32 AND CODE 2$<45 THEN GO TO
330
325 GO TO 400
330 REM COLLISION OF SWIMMERAND ... ^'^O
BJECT HELD IN 2$
333 FOR K=1 TO 6
334 IF X(K)=X < 7) AND Y(K)=Y(7) THEN GO TO 3
45: REM DECIDE WHICHCREATURE THE SWIMMER HAS
ENCOUNTERED
340 NEXT K: GO TO 400
345 IF K< 4 AND S(K)=2 THEN GO TO 615
347 IF K< 4 THEN GO TO 340
350 FOR L=1 TO 5: PRINT AT Y(K),X<K)( OVER 1
; PAPER 0; INK U(K);" ": FOR M=1 TO 10: NEXT
M
355 PRINT AT Y(K),X(K); OVER 1; PAPER U(K);
INK 0;” FOR M=1 TO 10: NEXT M: NEXT L
360 PRINT AT Y(K),X(K); PAPER 0; INK MC;” “
365 LET P=P+1
370 LET X(K)=0: LET Y(K)=0
Scuba 73
330 LET S<K)=0
400 REM FISH RANDOMISER
410 LET R=INT <RND*100>+1: IF R>8 THEN GO T
O 500
415 IF R>6 THEN LET R=R-3
420 IF S(R><>0 THEN GO TO 450
430 LET S(R)=1: IF RND>.5 THEN GO TO 440
434 LET X <R)=0: LET V(R)=INT <RND*11+10>
436 LET FS=5: LET M(R)=INT <RND*2+1): LET D<
R)=INT (RND*3-1>
437 IF R<4 THEN LET FS=7
438 LET T*(R)=S$<FS): GO TO 500
440 LET X(R)=31: LET V(R)=INT <RND*11+10>
446 LET FS=6: LET M(R)=-INT (RND*2+1>: LET D
< R)=INT (RND*3-1)
447 IF R<3 THEN LET FS=9
448 LET T$(R)=S$<FS): GO TO 500
450 IF S <R)=1 THEN GO TO 460
455 LET S(R)=l: IF RND>.5 THEN GO TO 436
457 GO TO 446
460 LET D(R)=INT (RND*9-4): LET M(R)=M<R)*2*
(INT (RND*3-1))
470 LET S <R)=2: IF R<4 THEN GO TO 480
472 IF SGN M(R)=1 THEN LET T*<R)=S$<5)
474 IF SGN M(R)=-1 THEN LET T$(R)=S*<6)
475 GO TO 500
480 IF SGN M(R)=1 THEN LET T*(R)=S*(7)
490 IF SGN M <R)=-1 THEN LET T$(R)=S$(10)
500 FOR K=1 TO 6: IF S(K)=0 THEN GO TO 600
510 PRINT AT Y(K> ,X(K> 5 PAPER 0» INK 4;"
LET V < K)=Y < K)+D <K) : LET X(K)=X(K)+M(K)
512 IF Y(K)<5 THEN LET Y(K)=5
513 IF Y(K)>17 THEN LET Y(K)=17
515 IF RND >.92 THEN LET D(K)=INT (RND*3-1)
520 IF X(K)<0 THEN LET X(K)=31
530 IF X(K)>31 THEN LET X(K)=0
590 PRINT PAPER 0! INK U<K);AT Y(K),X(K);T$
(K)
600 NEXT K: GO TO 700
615 REM SWIMMER EASTEN
625 PRINT INVERSE 1;"EATEN BY A SHARK!!!”
632 POKE 23606,0: POKE 23607,60: PRINT AT 0,
0! INVERSE 1;"NO FISH! YOU’RE THE SUPPER!"
640 GO TO 820
700 PRINT AT 0,05 INVERSE 1i”
74 Scuba
705 PRINT AT 0,0; INVERSE 1;"FISH CAUGHT = «
iP: IF T=1 THEN GO TO 200
710 PRINT AT 1,0! INVERSE 1;"AIR LEFT = ■ ;
AIR
720 IF AIR< =0 THEN GO TO 800
750 GO TO 200
800 PRINT AT 0,0;"
805 PRINT P;” FISH BROUGHT BACK FOR SUPPER"
810 PRINT "RAN OUT OF AIR..."
820 PRINT "ANOTHER GO???"
330 IF INKEY$< >"" THEN GO TO 830
340 IF INKEY*=”" THEN GO TO 840
350 IF INKEY*=”Y” THEN RUN
860 IF INKEY*=”N" THEN PRINT "THANKYOU FOR
PLAYING"’ INVERSE 1;" SCUBA ": STOP
370 GO TO 840
3000 POKE 23606,0: POKE 23607,60: REM SCUBA I
NSTRUC TIONS
3010 PAPER 0: INK 4: BORDER 0: CLS : PRINT TA
B 11 ; " S C U B A " ’
3020 PRINT "You are a scuba diver on a ra-ft a
bout to swim off and catch -fish-far supper."
3050 PRINT ’"HOLD DOWN..."’
3060 PRINT "S...To swim to the left'” "F...To
swim to the right”
3070 PRINT “E...To swim to the surface"
3080 PRINT "X. .To swim to the bottom"
3100 PRINT ’"You are armed with a hand spear
and you simply neeed to swim on top o-f a -fish
to catch it -for dinner."
3110 PRINT ’"Beware o-f the sharks. .. they are
quite harmless but can suddenly open their mo
uths and then"’"become very nasty!"
3120 PRINT ’"A spear- won’t help you against
sharks. . . “There’s a max of 3 fish and 3
sharks in the sea at any one time.”
3180 PRINT ’"Fish may suddenly change course
or speed if they become random1ypanicky."
3200 PRINT ’"When you enter the water you"'"h
ave 130 units of air in your tanks. You may
return to the raft as often as you like f
or more air.”
Scuba 75
3210 PRINT ’ INK 2;"A good diver will get at
1 east 20 fish! ! ! ”
3250 PRINT INVERSE 1’” GOOD LUCK...ENTER
TO START "
3260 LET Q=RND: IF INKEY$<>CHR$ 13 THEN GO T
0 3260
3270 POKE 23606,96: POKE 23607,235: RETURN
4000 REM CLEAR SCREEN AND PRINT SEA
4010 BORDER 2: PAPER 0: INK 5
4020 CLS : FOR J=0 TO 3: PRINT AT J,0; INVERS
Eli” "
4030 NEXT J
4060 INK 2: PRINT AT 4,205"
4100 INK 4: PRINT AT 13,05“
4110 PRINT " -- - - -- -
4120 PRINT ” -- - - - "
4130 PRINT " - --"
4900 RETURN
4999 REM ** DEFINED CHARACTERS SUBROUTINE
5000 RESTORE : FOR K=0 TO 12: FOR J=0 TO 7: R
EM ** K-LOOP PICKS WHICH CHA-RACTER, J-LOOP P
ICKS THE RELE- VANT BYTE
5003 READ A: POKE 60256+(K+33)*3+J,A: NEXT J:
NEXT K
5009 RETURN
5010 REM ** >!< SWIMMER RIGHT 1
5020 DATA 0,0,221,63,220,7,0,0
5110 REM ** >"< SWIMMER RIGHT 2
5120 DATA 0,0,29,255,4,4,4,0
5210 REM #* >#< SWIMMER LEFT 1
5220 DATA 0,0,137,252,59,224,0,0
5310 REM ** >$< SWIMMER LEFT 2
5320 DATA 0,0,134,255,32,32,32,0
5410 REM ** >%< SMALL FISH RIGHT
5420 DATA 0,0,76,126,124,64,0,0
5510 REM ** >E<< SMALL FISH LEFT
5520 DATA 0,0,50,126,62,2,0,0
5610 REM ** >’< SHARK RIGHT
5620 DATA 0,140,190,255,190,128,0,0
5710 REM #* >(< SHARK RIGHT OPEN MOUTH
5720 DATA 0,140,191,254,191,128,0,0
5310 REM ** >)< SHARK LEFT
5320 DATA 0,49,125,255,125,1,0,0
5910 REM ** >*< SHARK LEFT OPEN MOUTH
76 Scuba
5920 DATA 0,49,253,127,253,1,0,0
6010 REM ** >+< SWIMMER LEFT HAND UP
6020 DATA 83,83,124,60,60,40,40,40
6110 REM ** >,< SWIMMER RIGHT HAND UP
6120 DATA 26,26,62,60,60,20,20,20
6130 REM #* >-< WEEDS
6140 DATA 60,124,60,60,255,255,60,60
8999 REM ** COPY CHARACTER SET FROM ROM TO R
AM
9000 BORDER 0: PAPER 0: CLS : INK 4: IF PEEK
60256=255 THEN GO TO 9060
9010 PRINT "WHEN THIS NUMBER-REACHES ZERO
THE GAME WILL BEGINSOON AFTER"
9020 FOR X=256 TO 1023: POKE 60000+X,PEEK (15
104+X)
9030 BORDER INT ((X-256)/100): PRINT AT 0,18;
1023-X; " BEEP .01, (X-256) /100
9040 NEXT X
9060 BORDER 0: BEEP .5,12: RETURN
77
Endings
Here’s a textual game which is designed to make you delve the depths of
your geographical knowledge. (And I do mean depths. Did you know
that Ruteng was a town in Indonesia? Oh well...) Players must think of
a geographical name which starts with the last letter of the name offered
up by the player who went before. So it’s you against the computer, who
from time to time will try to cheat by offering you fictitious names.
Challenge if you dare! Of course if you’re pushed you can try to cheat
too, but the computer may well challenge your entry.
1 POKE 23653,255
5 REM ENDINGS
10 LET Q$=" "
20 LET L5=0
40 LET M1=0: LET M2=0
50 DIM G*(130,ll): DIM C(130): DIM X<130)
60 BORDER 4: PAPER 4: INK 0: CLS
69 PRINT INVERSE 1;“CAPS LOCK"; INVERSE 0;
" MUST BE ON."
70 PRINT "THERE IS A GAME OF GEOGRAPHY
ENDINGS’ WHERE EACH PLAYER IN TURN HAS TO NA
ME A COUNTRY,TOWN,"
30 PRINT "MOUNTAIN,RIVER OR OTHER "
90 PRINT "GEOGRAPHICAL PLACE-NAME WHICH S
TARTS WITH THE "; INVERSE 1;"LAST LETTER"
100 PRINT "OF THE PREVIOUS PLACE-NAME."
110 PRINT : PRINT "I SHALL TAKE YOU ON...I
MAY CHALLENGE YOU IF I DONT THINK YOU AR
E GIVING ME A REAL PLACE NAME."
120 PRINT " IF YOU THINK I AM MAKING S
OMETHING UP WHEN IT IS YOUR GO,PRESS <ENTER?
IF YOU CHALLENGE MY NAME OR IF YOU WISH
TO CHALLENGE ME."
130 PRINT " I SHALL LEARN AS WE GO.NO PLACE
NAME MAY BE USED MORE THAN ONCE”
135 PAUSE 400
165 LET N=1
170 READ G*(N),C<N): IF G$(N, TO 3)="ZZZ" TH
EN GO TO 1000
180 LET N=N+l: GO TO 170
78 Endings
199 REM DATA HAS NAME OF PLACE FOLLOWED BY L
ENGTH OF WORD
200 DATA "AACHEN",6
201 DATA "ABBEVILLE",9
202 DATA "ACAPULCO",3
203 DATA "ASIA",4
204 DATA "AUSTRALIA",9
205 DATA "AMERICA",7
206 DATA "ANTARCTICA",10
207 DATA “AMADI",5
208 DATA "ARDLUI ", 6
209 DATA "AVON”,4
210 DATA "AYR",3
211 DATA "ATLANTIC",3
212 DATA "ARLES",5
213 DATA "ARNO",4
214 DATA "BOLIVIA",7
215 DATA "BALI",4
216 DATA "BOTSWANA",3
217 DATA "BELIZE",6
213 DATA "BELGIUM",7
219 DATA "BULGARIA",8
220 DATA "BURY",4
221 DATA "BAYEUX ", 6
222 DATA "BRAZIL",6
223 DATA "BIARRITZ",8
224 DATA "BIU",3
225 DATA "CAIRO" ,5
226 DATA "CASPIAN",7
227 DATA "CHAD",4
223 DATA "CHILE",5
229 DATA "LAS VEGAS",9
230 DATA "CAMBRIDGE",9
231 DATA "SWANSEA",?
232 DATA "VICTORIA",8
233 DATA "WEMBLEY",7
234 DATA "WUHAN",5
235 DATA "WHITCHURCH",9
236 DATA “TOLEDO ", 6
23? DATA "VERSAILLES",10
233 DATA "LONDON”,6
239 DATA "YORK",4
240 DATA "ZAIRE",5
241 DATA "YOKOHAMA",8
Endings 79
"
242 DATA "OSLO",4
243 DATA "NYANGA”,6
244 DATA "QUITO",5
245 DATA "PORTSMOUTH",10
246 DATA "SCARBOROUGH ", 11
247 DATA "SWITZERLAND",11
243 DATA "SKOPJE",5
249 DATA "NALUT",5
250 DATA "QATAR",5
251 DATA "RUTENG",6
252 DATA "RAPID CITY", 1.0
253 DATA “SPAIN'* ,5
254 DATA "PEKING",6
255 DATA "TOKYO",5
256 DATA ”RESOLUTION", 10
257 DATA “OLDHAM",6
258 DATA "IONA",4
259 DATA "ICELAND",7
260 DATA "JAMESTOWN",9
261 DATA "JOINVILLE",9
262 DATA "ISCHIA",6
263 DATA "JOMBANG",7
264 DATA "KYOTO”,5
265 DATA "NAGASAKI",8
266 DATA "LUNE",4
267 DATA "MOBILE",6
268 DATA "MONROVIA",8
269 DATA "LANGON",6
270 DATA "KHARTOUM",8
999 DATA "ZZZ",3
1000 BORDER 5: PAPER 5: CLS : PRINT "PRESS AN
Y KEY TO START."
1010 PAUSE 0
1020 LET G$(N)=" ”: LET C(N)=0
1030 PRINT "++++++++++++ENDINGS++++++++++++"
1040 PRINT : PRINT : PRINT " DO YOU WANT TO G
O FIRST?(Y/N)“
1050 LET A$=INKEYS: IF A$="“ THEN GO TO 1050
1060 LET P$=""
1070 IF A$="N" THEN GO TO 2000
1030 IF A*='*Y" THEN GO TO 3000
1090 GO TO 1050
2000 REM COMPUTER GO
2010 LET B5=0: LET B$=""
80 Endings
202.0 IF P*<>“" THEN LET B$=P$(LEN P$)
2030 IF 6$="" THEN 60 TO 2100
2032 IF RND >. 1 THEN GO TO 2200
2035 LET Q=INT (RND*(N-1))+1
2038 LET W=0
2040 IF L$<B$ THEN LET 6>=INT (Q*RND)
2042 IF L*<B$ THEN LET Q=INT (Q/RND)
2044 LET L*=G$(G!, 1 ) : IF L$=B$ AND XlfilOl THE
N LET P*=G^(Q,C(Q)): GO TO 2500
2050 LET W = W+ 1: IF W>100 THEN GO TO 2200
2060 GO TO 2.040
2100 REM FIRST GO
2110 IF RND>.85 THEN GO TO 2200
2115 LET Q=INT (RND*(N-1))+1
2120 IF X (Q) = 1 THEN GO TO 2115
2125 LET P*=G$(0, TO C(Q))
213.0 GO TO 2500
2200 REM COMPUTER MAKES ONE UP!!
22.05 LET B$=Q$(1)
2210 IF B$="“ THEN LET B*=CHR$ (INT (RND*26)
+ 65)
2215 LET Q=INT <RND*N)+1
2220 LET L$=G*(Q,1)
2225 IF L$=B* THEN LET P$=G«(Q,INT (RND*3+1)
): GO TO 2240
2235 GO TO 2215
2240 LET Q=INT (RND*N)+1: LET R=3
2245 LET P*=P$+G$(Q,R TO R+<RND*3)+1)
2250 LET <3=INT <RND*N)+1
2255 LET P$=P$+G$(Q,11-(INT (RND*3)+1))
2256 IF P*(LEN P$)=" " THEN LET P$=P$( TO LE
N p*-l>: GO TO 2256
2257 LET P$=Q^(LEN Q$)+P$
2258 LET Q=LEN P%
2260 LET B*<1)=Q$<LEN Q$): LET L5=l: GO TO 25
.00
2500 REM COMPUTER PRINTOUT NAME
251.0 PRINT : PRINT P$
2520 LET A*=INKEY*: IF A*='"* THEN GO TO 2520
2530 IF CODE A$=13 THEN GO TO 2800
2540 IF A*="*■* THEN GO TO 2700
255.0 GO TO 2520
27.00 REM COMPUTER CHALLENGED
2705 PRINT FLASH 1; BRIGHT 1;" YOU DARE TO C
Endings 81
HALLENGE?"
2710 FOR J=0 TO 400: NEXT J
2720 IF L5=I THEN GO TO 2780
2730 PRINT "YOU ARE WRONG.MY NAME IS:": PRINT
G$(Q)
2740 PRINT : PRINT "IF YOU DONT BELIEVE ME,LO
OK IT UP!"
2750 LET M1=M1+1
2760 PRINT "THE SCORE IS “5 Ml;" TO ME AND
M2!" TO YOU."
2770 LET X < Q)=1: LET P%= "": PRINT "YOU START
NEXT." : GO TO 3000
2780 PRINT "I OWN UP...YOU ARE RIGHT.I MADE I
T UP ! ! "
2790 LET M2=M2+1: LET P$=””: PRINT "THE SCORE
IS NOW ";M15" TO ME AND ";M2 5 " TO YOU.": P
RINT "I’LL START AGAIN.": GO TO 2000
2800 REM COMPUTERS GO COMPLETE
2810 LET X(Q)=l: GO TO 3000
3000 INPUT Q$: IF Q$="" THEN GO TO 3000
3020 IF P$="“ THEN GO TO 3100
3030 LET E$=P$(LEN P$)
3040 IF B$=Q9s(l) THEN GO TO 3100
3050 PRINT INVERSE 15 BRIGHT 15"ILLEGAL ENTR
Y.WRONG INITIALLETTER. "
3060 GO TO 3000
3100 REM CHECKED AND O.K.
3110 FOR J=1 TO N
3120 IF G$(J)=Q$ AND X(J)=1 THEN GO TO 3150
3130 IF G*MJ)=Q* THEN LET X(J)=1: GO TO 3300
3134 NEXT J: GO TO 3200
3150 PRINT "NOT ACCEPTABLE... IT’S BEEN USED B
EFORE.": GO TO 3000
3200 REM DOES THE COMPUTER CHALLENGE
3210 IF RND>.5 THEN GO TO 3230
3220 GO TO 3300
3230 BEEP .5,0: PRINT INK 15"CHALLENGE!"
3240 PRINT INK 3;"I DON’T BELIEVE YOU."
3250 PRINT INK 3;"NOW YOU WJLL HAVE TO BE HO
NEST BECAUSE IT IS NOT IN MY DATA BANK. ’’
3260 PRINT “IS IT A REAL PLACE(Y/N)?”
3270 LET A*=INKEY$: IF A*="" THEN GO TO 3270
3280 IF AS="Y" THEN GO TO 3500
3290 IF A$= N’’ THEN GO TO 3600
82 Endings
3295 GO TO 3270
330.0 LET P$ = Q*: LET G$<N)=P*
3310 LET C(N)=1: LET X(N)=1: LET N=N+1
3320 GO TO 2000
3500 PRINT "OK..I BOW TO YOUR SUPERIOR K
NOWLEDGEM": LET M2=M2+1
3510 PRINT " THE SCORE IS NOW ,, ;M2;" TO ME A
ND ";Ml;" TO YOU."
3520 LET P*=”"
3530 PRINT "I’LL START NOW.GO TO 200
0
3600 PRINT "YOU ARE VERY HONEST.THANK YOU."
3610 LET Ml=Ml + l: PRINT "THE SCORE IS NOW “* M
1J" TO ME AND ";M2;" TO YOU."
3620 LET P*=“": PRINT "YOU START NOW.": G
0 TO 3000
83
Snap
This is a program which puts your micro’s graphics capabilities to good
use. It’s an educational exercise for the very young, designed to test their
powers of observation. The computer generates a series of picture cards
at the bottom of the screen—a bus, a train, a ship and so on—and then
randomly reproduces selected cards at the top of the screen, and it’s up
to the players to match up the top picture with the letter representing the
appropriate picture at the bottom of the screen.
10 REM * HIGH RES.PICTURE SNAP @
1983 MICHAEL BEWS
15 POKE 23609,111
20 BORDER 6: PAPER 5: INK 1
25 LET TB=10000: LET <3*="ZXCVBNM”: LET P=0:
LET R=0: LET T=0
30 DIM A < 7,72)
40 GO TO 600
49 REM * HI RES SCREEN DISPLAY
50 CLS : PRINT PAPER 7; INK 15 INVERSE 15”
HI-RES PICTURE SNAP @1983 M.BEWS"; INK 2;“TIM
e: "; tab 13;*' correct out of: ”;at l,30;P;
55 PRINT INVERSE 1;AT 18,35“Z”;AT 18,7;“X"
5 AT 18,115“C"5 AT 18,155 ”V"5 AT 18,19; "B“5 AT 18
,23;“N";AT 18,27;“M"
60 FOR K=1 TO 7: FOR L=0 TO 7: FOR M=1 TO 9
70 POKE USR CHR$ (143+M)+L,A<K,L*9+M)
75 NEXT M: NEXT L
80 LET Y=K*4-2
100 PRINT PAPER 7;AT 14,Y; “ABC ”5 AT 15,Y;’D^
F" ;AT 16,Y; "6HI ”;
120 NEXT K
199 REM ** GAME DISPLAY ROUTINE
210 PRINT AT 4,215” “5 AT 6,14;” * 5 AT
7,145“ “5 AT 8,14 5" ”5
220 PRINT AT 20,05 PAPER 7; INK 2; INVERSE 1
5"PRESS THE CORRECT LETTER AS SOONAS YOU RECO
GNISE THE NEW PICTURE"
230 LET N=1+INT <RND#7)
240 FOR L=0 TO 7: FOR M=1 TO 9: POKE USR CHR
$ (143+M)+L,A(N,L#9+M): NEXT M: NEXT L
84 Snap
250 LET X=200+INT <RND*500): FOR C=1 TO X: N
EXT X
260 PRINT PAPER 7;AT 6,14; "ABC ";AT 7,14 i’D£
F" ; AT 3,14; "GHI";
265 LET TA=0
270 LET A=PEEK 23556: IF A=255 THEN LET T=T
+1: PRINT AT 1,6; PAPER 7; INK 2;T;: GO TO 27
5
272 GO TO 280
275 LET TA=TA+1: - IF TA=200 THEN GO TO 290
277 GO TO 270
230 IF A=CODE Q*(N) THEN LET R=R+1: PRINT A
T 1,13; PAPER 2; INK 7;R: PRINT AT 4,21; INK
7; PAPER 4;“CORRECT”;: GO TO 300
290 PRINT PAPER 2; INK 7;AT 4,21;"WRONG! ";
300 LET P=P+1: PRINT AT 1,30; PAPER 2; INK 7
;p;
310 IF P=10 THEN GO TO 400
320 FOR X=1 TO 200: NEXT X: GO TO 210
399 REM *END OF GAME ROUTINE
400 REM *END OF GAME ROUTINE
410 IF TB>T THEN LET TB=T
420 PRINT AT 10,0; INK 7; PAPER 2;"YOU HAVE
”;R;" CORRECT OUT OF 10 IN";AT 11,0;"TIME *;T
;". BEST TIME SO FAR “;TB;
430 INPUT FLASH 1;"PRESS<ENTER>FOR NEXT GAM
E"; x$
440 LET R=0: LET T=0: LET P=0
450 PRINT AT 10,0;"
460 PRINT INK 7; PAPER 2;AT 1,6;"
;AT l,30;" -;
470 GO TO 210
598 STOP
599 REM ^INITIALISATION
600 CLS : PRINT PAPER 7; INK 1; INVERSE 1;"
HI-RES PICTURE SNAP @1983 M.BEWS"
610 PRINT AT 2,9; PAPER 7; INK 4; FLASH 1;"I
NITIALISING"; FLASH 0! INK 1; INVERSE 15 AT 4,
05“THIS PROGRAM ALLOCATES SEVERAL HIGH RES0
LUTION PICTURES TO THE ’Z’-’M’ KEYS.
"SAT 9,0;"AFTER A SHORT DELAY, ONE P
ICTURE IS DISPLAYED AT THE CENTRE OF THE SCR
Snap 85
EEN. YOU MUST QUICKLY PRESS THE CORRECT KE
Y TO SCORE. "
620 FOR X=1 TO 7: FOR Y=1 TO 72: READ A(X,Y)
: NEXT Y: NEXT X
650 GO TO 50
998 STOP
999 REM *#ship
1000 DATA 0,0,0,0,0,8,15,255,224,0,0,0,3,128,
8,0,0,0,0,0,0,3,123,3,0,0,0,0,0,0,15,255,8,0,
0,0,0,0,0,15,255,8,0,0,0,0,0,0,63,255,252,0,0
,0,0,0,8,63,255,248,0,0,0,0,0,8,31,255,240,0,
0,0
1009 REM ^helicopter
1010 DATA 0,0,0,0,7,128,0,255,252,0,0,0,0,12,
192,0,0,0,0,0,0,96,24,96,0,0,0,0,0,0,127,240,
112,0,0,0,0,0,0,111,255,224,0,0,0,0,127, 240,3
6 , 4 , 0 , 0,0
1019 REM **bus
1020 DATA 0,0,0,0,0,0,60,1,224,0,0,0,63,255,2
4,0,0,0,0,0,0,63,255,214,0,0,0,0,0,0,127,255,
1029 REM Hrailway engine
1030 DATA 0,0,0,12,3,123,7,131,192,0,0,0,12,1
95,123,3,1,123,0,0,0,31,255,128,0,0,0,0,0,0,3
1,255,240,0,0,0,0,0,0,31,255,240,0,0,0,0,3,24
0,31,255,240,0,0,0,0,2,128,15,255,240,0,0,0,1
2,2,128,31,255,240,0,0,0
1039 REM Hear
1040 DATA 0,0,0,0,127,0,12,0,24,0,0,0,0,132,1
28,0,0,0,0,0,0,1,4,64,0,0,0,0,0,0,2,4,32,0,0,
, 0
1049 REM *#tank
1050 DATA 0,0,0,64,3,0,51,51,48,0,0,0,64,255,
0,63,255,240,0,0,0,65,255,128,12,204,192,0,0,
,64,0,0,127,255,252,0,0,0
1059 REM **clocl<
86 Snap
1060 DATA 0,0,0,9,64,144,8,66,16,0,0,0,8,32,1
6,8,24,16,0,0,0,8,16,16,8,0,16,15,255,240,10,
15,30,15,255,240,8,0,16,8,0,16,0,0,0,8,24,16,
8,0,16,0,0,0,3,66,16,9,0,144,0,0,0,8,0,16,8,0
,16,0,0,0
Paypackets
87
Anyone who runs a shop or small business will find this program
something close to invaluable. It’s Friday, you’ve worked out how much
everyone is getting paid and the time has come to make up the wage
packets. How many, of what note and what change are you going to
need? Well, key this in and all your problems are solved. The program is
relatively short, completely reliable and of course you don’t have to own
a business to use it. It will work with any sum — from thousands of
pounds right down to the expenses for the local church fete, or individual
small prizes for the children’s party.
1 REM PAYPACKETS
BY H. WALWYN
FOR THE COMMODORE 64
CONVERTED F
OR THE 16/43K SPECTRUM
BY ANDY GREEN
1.0 REM CS(X, 12)=NAME OF CURRENCY
12 REM CV<X)=CURRENCY VALUE INPOUNDS
14 REM CA(X)=AMOUNT OF UNITS REQUIRED OF T
HIS CURRENCY
16 REM CB <X)=TOTAL AMOUNT OF UNITS REQUIRE
D OF THIS CURRENCY
18 DIM C*<11,12): DIM V(11) : DIM A <11) : DIM
B < 1 1 )
20 FOR J = 1 TO 11: READ C$<J),V(J): NEXT J
25 DATA "ONE PENCE ", 0.01, "TWO PENCE",0.02
30 DATA "FIVE PENCE", 0.05, "TEN PENCE", 0.1, "
TWENTY PENCE",0.2
40 BATA "FIFTY PENCE",0.5,"ONE POUND",1,"FI
VE FOUND",5
50 DATA "TEN POUND", 10, "TWENTY POUND",20, "F
IFTY POUND",50
60 LET SR=0: LET XX=0: LET D3>=" “
100 PAPER 0: CLS : BORDER 1: INK 6
150 GO SUB 500
155 INK 6
160 INVERSE l: PRINT AT 2,0;" ENTER FOR
NEW PAYMENT
165 PRINT H SPACE TO GIVE THE TOTAL AMOUNT “
88 Paypackets
170 PRINT " DELETE TO CANCEL ALL DATA
1S0 INVERSE 0
199 REM **GET AN INSTRUCTION KEY
205 LET XX=0: LET SR=1
210 LET A$=INKEY$: IF A*= " " THEN GO TO 210
220 IF A$=CHR* 13 THEN GO TO 300
230 IF A*=CHR$ 12 THEN RUN
240 IF ASJ=" " THEN GO TO 400
250 GO TO 210
300 LET F'ACKET=0: INK 3: PRINT AT 0,0; FLASH
1;"CASH AMOUNT IN PACKET?";: GO SUB 9000: PR
INT ’ ":A$
310 PRINT AT 0,0;"CASH AMOUNT IN PACKET ";A*
320 LET A=VAL A$: LET A1=A
330 i_ET PACKET=l: PRINT FLASH 1; "NUMBER OF
PACKETS? GO SUB 9000: PRINT " ” ; A*
340 PRINT AT 1,0;"NUMBER OF PACKETS ";A$;”
350 LET B=VAL A$: LET B1=B
360 GO SUB 800
370 CLS : GO TO 150
399 REM ** TOTAL FIGURE
410 LET XX=1
420 CLS : GO TO 150
499 REM ** PRINT OUT TABLE
500 LET AT=0
510 PRINT AT 5,0; INK 2;"-
525 PRINT INK 5; BRIGHT 1;"CURRENCY”;TAB 14
;"NO OF UNITS";TAB 26;"AMOUNT"
530 PRINT
535 FOR J=1 TO 12: INK 3: POKE 23692,255
536 IF J< >12 THEN GO TO 540
537 PRINT TAB 21 ; ”-"
533 PRINT TAB 14; "TOTAL: ” ;
539 LET A$=STR$ (AT): GO TO 580
545 PRINT C* (J);
550 LET C=LEN (STR* (INT (A(J))))
551 IF XX=1 THEN LET C=LEN (STR$ (INT <B(J)
) )
559 IF XX=1 THEN INK 4: PRINT TAB 22-C;B(J)
:: GO TO 571
560 INK 4: PRINT TAB 18-C;A(J);
Paypackets 89
570 LET A$=STR$ (A<J)*V(J))
571 IF X X = 1 TflEN LET A*=STR* (B<J)*V<J))
574 IF XX=1 THEN LET AT=AT+B(J)*V(J): GO TO
580
575 LET AT=AT+A<J)*V<J)
580 LET D*='"': LET N=0: FOR K=1 TO LEN A$
590 LET B35=A$(K)
600 IF B*=" “ THEN GO TO 650
510 LET D$=D$+B^
613 LET FL=0: FOR X=1 TO LEN D$: IF CODE D$ >
4? AND CODE D*<58 THEN LET FL=1
614 NEXT X: IF FL=0 THEN GO TO 620
615 IF 8$="." AND VAL D$< 1 THEN LET D$=\0" +
D*
620 IF B$=". ,, THEN LET N=1
650 NEXT K
660 IF N=0 THEN LET D$=D$+".00": GO TO 700
670 LET A=LEN D$: IF D$(A-1)=“." THEN LET D
$=!)$+"0”
690 REM ** STRING COMPLETE
700 INK 5
710 LET A=LEN D*
720 PRINT TAB 30-A;D$
730 NEXT J
740 IF SR=0 THEN GO TO 750
741 IF XX=i THEN INK 4: PRINT INVERSE 1;"T
HIS IS THE RUNNING TOTALAT 0,0;: GO TO 750
742 IF XX=0 THEN INK 6: PRINT INVERSE 15
; B l; “ x £"; A l;
750 RETURN
800 REM ** CALCULATE A(X)
810 LET X=0: LET A=A*100: FOR J=ll TO 1 STEP
-1
820 LET A(JJ=0: IF X=1 THEN GO TO 350
330 IF (A-V(J)*100)<0 THEN GO TO 350
335 LET A=INT (A-INT (V<J)*100.0000001)): IF
A=0 THEN LET X=1
336 REM ** PREVIOUS LINE PREVENTS DECI
MAL PLACE OVERFLOW ERROR
840 LET A <J)=A <J)+1: IF X=0 THEN GO TO 830
850 NEXT J
860 FOR J=1 TO 10: LET A(J)=A(J)*B: NEXT J
370 FOR J=1 TO 10: LET B(J)=B(J)+A(J): NEXT
90 Paypackets
830 RETURN
8999 REM ** NQN-CRASHABLE NUMERIC INPUT
9000 INPUT LINE A*: LET FL=0: LET FL2=0: LET
DP=0
9005 IF A$=" " THEN 60 TO 9000
9010 FOR X=1 TO LEN A$: IF CODE A$(X>=46 THEN
LET FL2=FL2+l: LET DP=X
9020 IF (CODE A$<X><43 OR CODE A*(X)>57) AND
CODE A*«XS<>46 THEN LET FL=1
9030 NEXT X: IF LEN A$-DP<>2 OR FL OR FL2>1 O
R LEN A*>6 THEN BEEP .5,-3: PRINT #1; FLASH
1j”PLEASE REINPUT": PAUSE 50: BEEP .02,12: 60
TO 9000
9040 IF PACKET THEN IF DP OR LEN A$>2 THEN
LET FL=1: 60 TO 9030
9060 RETURN
91
Newmarket
This is another game with an equestrian flavour, except this time around
you’ll require the skills of a budding Lester Piggot. There are eight
horses in the race, and two things will happen once you have decided
which one you want to ride. Firstly, all the other horses will gallop off at
the start, leaving you floundering at half speed. You soon discover that
your mount is one of those creatures that only pulls its weight when the
finishing line is in sight and then it will go twice as fast as anything else on
four legs.
The second problem is that the other horses have a (cleverly computed)
desire to crowd you out of the action. They will tend to close up in front
of you and even steer straight at you from the side! There’s no steward to
protect you in this race, so aim for a gap in the field and hope you will be
fast enough to avoid trouble. Any horses colliding with each other are
flung randomly sideways and backwards, thus losing valuable speed.
OK, you’re under starter’s orders...
1 REM NEWMARKET . WALWYN
2 REM HORSERACE GAME
5 DIM a(7): DIM b(7): DIM x<7): DIM y<7):
10 LET c=0
15 BORDER 0
20 PAPER 7
25 INK 0
30 LET slo=3: REM ^-factor to slow movement
40 GO SUB 1000
50 GO SUB 3000
85 INK 0
90 CLS
92 FOR X=0 TO 6: INK x
93 PRINT AT 2+X*3,0;STR* (X+l);" DEF"
94 NEXT X
95 INK 0: FOR X=0 TO 21: PRINT AT X,30;” ":
NEXT X
96 INK 0: PRINT AT 0,0;" Controls 7=UP 6
DOWN
97 INPUT "Select your horse 1-7 ";h*
98 IF h$<"1" OR h«>"7" THEN GO TO 97
92 Newmarket
99 LET n = VAL (h*): LET acc=<20-ABS <4-n))/3
4
100 LET k*=INKEY*: LET m=INT <RND*7+1)
102 IF m=n THEN GO TO 100
105 IF k$="7" OR k*="6" THEN LET m = r>: GO TO
150
110 LET k9="7": IF RND >. 5 THEN LET k*="6"
120 IF x (m) >x (n) -2 THEN LET k*=' , 7": IF y<n)
>y<m) THEN LET k*="6"
150 IF k$=“7" THEN LET y (m)=y(m)-1 : IF y(m)
<1 THEN LET y(m)=l
160 IF k$="6" THEN LET y(m)=y(m)+1: IF y(m)
>20 THEN LET y(m)=20
165 LET x(m)=x(m)-1/slo
180 FOR i = l TO 7
185 LET j =INT (RND*4+1)
190 IF iOn THEN GO TO 240
200 IF c=0 THEN LET j=j*acc: IF x(n)>9 THEN
LET c=l
205 IF c=l THEN BORDER 2: LET c=2
210 IF c=2 THEN LET j=j*2
240 LET x(i)=x(i)+j/slo: IF x(i)>28 THEN LE
T x ( i)=28
250 NEXT i
400 LET crash=0
410 FOR i=1 TO 7
420 FOR j=i TO 7
430 IF i=j THEN GO TO 550
440 IF y(i)< >y(j ) THEN GO TO 550
450 IF ABS (x(i )-x (j ) ) >3 THEN GO TO 550
460 LET d=l: IF b(i)>b(j) THEN LET d=-l
470 LET y(i)=y<i)-d
475 LET y <j ) =y(j )+d
480 IF ytiXl THEN LET y(i)=l
490 IF y(i)>20 THEN LET y(i)=20
500 IF y(j)<1 THEN LET y < j)=1
510 IF y(j) >20 THEN LET y(j)=20
530 LET x(j)=x<j)-INT <RND*5+1 )/slo: IF x(j
)<2 THEN LET x <j )=2
540 LET crash=l
550 NEXT j
560 NEXT i
570 IF crash=l THEN GO TO 400
600 FOR i=1 TO 7
Newmarket 93
610 PRINT AT INT b(i),INT a(i)i"
615 INK i-1
618 LET h*= "DEF": IF x(i)-INT (x<i))>.5 THEN
LET h *=“ABC"
620 PRINT AT INT y<i),INT x<i);h$
625 IF x <i) > = 28 THEN GO TO 5000
630 LET a(i)=x(i)
635 LET b <i)=y <i)
640 NEXT i
700 GO TO 100
1000 REM **** Instructions ****
1010 CLS : PRINT AT 0,105"NEWMARKET": PRINT
1020 PRINT “In this horse-race game, you"
1030 PRINT "ride any horse -from 1 to 7."
1040 PRINT "You must steer a path avoiding ■
1050 PRINT "the other horses since any horse"
1060 PRINT "in a collision with another will"
1070 PRINT "be blocked and -forced sideways"
1080 PRINT "and backwards."
1090 PRINT : PRINT “’Easy’, you might say..."
1110 PRINT "BUT your horse is a very s-l-o-w"
1120 PRINT "starter and will only run at "
1130 PRINT "speed after the screen border "
1135 PRINT "turns PRINT PAPER 2;"RED";:
PRINT This occurs when you"
1140 PRINT "have ridden a third of the way"
1150 PRINT "down the track, so you will "
1160 PRINT "always have other horses in "
1170 PRINT "front of you."
1171 PRINT AT 20,0;" Press any key to conti
1172 LET z*=" " : LET z*=INKEY$: IF z*="" THEN
GO TO 1172
1175 CLS : PRINT AT 0,0;"To make it harder st
ill, all"
1177 PRINT "horses within 20 feet of you "
1180 PRINT "will attempt to block your path"
1182 PRINT "or crash into you!": PRINT
1185 PRINT "Push number 6 to move down the"
1187 PRINT "screen and number 7 to move up"
1190 PRINT "the screen. BEWARE: any course"
1192 PRINT "alteration will also reduce your"
1195 PRINT "speed!"
1197 PRINT
94 Newmarket
12.00 PRINT " Good Luck!
: PRINT : PRINT " Press any key to start
1210 LET z*=“ " : LET z$=INKEY$: IF z$=”" THEN
GO TO 1210
1220 RETURN
3000 REM ** set up horse graphic **
3005 FOR i=0 TO 7: READ gr
3010 POKE USR "a"+i,gr
3020 NEXT i
3105 FOR i=0 TO 7: READ gr
3110 POKE USR "b" + i,gr
3120 NEXT i
3205 FOR i=0 TO 7: READ gr
3210 POKE USR "c"+i,gr
3220 NEXT i
3305 FOR i=0 TO 7: READ gr
3310 POKE USR "d"+i,gr
3320 NEXT i
3405 FOR i=0 TO 7: READ gr
3410 POKE USR "e”+i,gr
3420 NEXT i
3505 FOR 1=0 TO 7: READ gr
3510 POKE USR " -f “ + i , g r
3520 NEXT i
3900 DATA 0,0,0,12,3,3,5,10
391.0 DATA 8,12,26,113,255,254,1,1
3920 DATA 0,128,224,144,192,128,64,32
3930 DATA 0,0,1,195,63,63,30,80
3940 DATA 128,196,174,153,252,224,20,34
3950 DATA 0,0,0,0,0,0,0,0
4000 REM ** set up screen positions *#
4010 FOR q=1 TO 7
4020 LET a(q)=2: LET x(q)=2
403.0 LET b(q)=q*3-l: LET y(q)=b(q)
4040 NEXT q
4050 RETURN
5000 REM *** winner ##*
5.005 PAPER i -1 : INK (7*INT <<7-i>*2/7>>
5010 IF i = r. THEN GO TO 5030
5015 PRINT AT 0,0;" The Winner....Horse Numbe
5020 GO TO 5.040
5030 PRINT AT 0,0!" You won! Well done
Newmarket 95
5035 REM *flash*
5040 FOR q=l TO 50
5045 PRINT AT y<i),x<i); FLASH 1; "DEF"
5050 NEXT q
5100 PRINT AT 21,0;" Press any key to play
again
5130 LET z$=" M : LET z$=INKEY$: IF z$=" " THEN
GO TO 5130
5150 RUN
6000 REM ************************
6010 REM
6020 REM To alter the -fortunes of the game tr
y the following:-
6030 REM vary slo in line 30
6040 REM vary the speed of your horse reiativ
e to the others by changing j in lines 200-21
0
6050 REM alter the point at which the speed u
p takes place..e.g.x>8 in line 210
96
Holiday Expenses <4 sk)
Calculate all your currency needs for a trip through several countries.
Approximate exchange rates are included for 19 currencies and you may
enter others as you wish. Four currencies are handled at one time by the
holiday costs and cross-rates pages and there are twelve holiday costs
categories ranging from hotel bills to phone calls and gifts for the folk
back home. Enter your anticipated costs in each of the four currencies,
press a key and see the total in sterling.
1 REM ******************************** D E
FINITIVE ************
HOLIDAY EXPENSES
2 REM ***-
3 REM ***
4 REM ***
5 REM ***
10 REM ***HOLIDAY EXPENSES @1
983 MICHAEL BEWS
15 POKE 23609,111
20 BORDER 6: PAPER 7: INK 1
25 LET E*=" 1 5 10 20 50100500”
30 DIM Ct$(12,5): DIM C(13,4): DIM N*<4,3):
DIM R (4 )
35 LET CF=0: LET TF=0: LET VF=0: LET N=1: L
ET CY=1: LET FG=0: LET T=0
40 GO TO 600 ‘
49 REM **RATES DISPLAY
50 INK 0: CLS : PRINT INVERSE l;“ HO
LIDAY EXPENSES
60 PRINT M £STG”;TAB 5;N$<1);TAB 12;N$(2);TA
B 19;N*(3) 5 TAB 26;N$<4)
70 PRINT AT 1,0; OVER 1;"_
30 FOR X=1 TO 7: LET Z$=E*<X*3-2 TO X*3): P
RINT AT X+1,052^;"=";
90 FOR Y=1 TO 4
100 LET Q*=STR* (R(Y)*VAL Z%)
110 GO SUB 3000
120 PRINT AT X+l,Y*7-3;Qj
130 NEXT Y
Holiday Expenses 97
140 NEXT X
150 PLOT 31,167: DRAW INK 1; OVER 1;0,-63
160 PLOT 37,167: DRAW INK 15 OVER 1;0,-63:
PLOT 143,167: DRAW INK 1; OVER 150,-63: PLOT
199,167: DRAW INK 1; OVER 150,-63
170 PRINT AT 9,05 INVERSE 15" 1 2 3
4 5
180 PRINT INK 15 AT 20,0; INVERSE 15 "ENTER 2
COLUMN NUMBERS (eg 32) TO DISPLAY CROSS-RAT
ES ("5 (NS < 2) ) 5 "/ "5 < N*(1) ) 5 ” ) "
135 BEEP .1,10
189 REM -X-CROSS RATES CALCULATOR
190 INPUT INK li INVERSE l;"OR ENTER ’M’ FO
R MENU"5 X$
200 IF X*="M" THEN GO TO 850
205 IF X*=" " THEN GO TO 340
210 IF LEN X*<>2 THEN GO TO 130
220 LET F=VAL X$(1)-1: LET S=VAL X*(2)-l
225 IF S<0 OR S>4 OR F<0 OR F>4 THEN GO TO
130
230 IF S=0 THEN LET Q=R(F): LET J$=N$(F): L
ET K$="STG": GO TO 260
235 IF F=0 THEN LET Q=1/R(S): LET J$="STG":
LET K*=N$(S): GO TO 260
240 LET Q=R(F)/R(S)
250 LET J$=N$(F): LET K$=N$(S)
260 LET M=1
265 IF GK.01 THEN LET Q=Q*10: LET M=M*10: G
O TO 265
270 LET Q*i=STR* <3: GO SUB 3000
230 LET C=Q: PRINT AT 11,05 PAPER 65S*5S*5S$
;S$ 5 AT 11 , 05 " ”;J$;TAB 11;K$;AT 11,05 OVER 1;
290 FOR X=1 TO 7: LET Z=M*VAL E*(3*X-2 TO 3*
X)
300 LET Q=C*VAL E$(3*X-2 TO 3*X)
305 LET Q$=STR* Q
310 GO SUB 3000
320 PRINT AT 11+X,1; PAPER 65Q5TAB 9;"= ";Z
330 NEXT X
335 PLOT 0,88: DRAW INK 250,-65: DRAW INK
25128,0: DRAW INK 250,65: DRAW INK 2;-123,0
: PLOT 64,38: DRAW INK 250,-65
339 REM **CROSS RATES(ANY AMNT)
98 Holiday Expenses
340 PRINT AT 20,0;S$;AT 20,0; INK 2; INVERSE
15" ENTER ANY AMOUNT OF ";(J$i);" OR "|(K*)i“
TO SEE EQUIVALENT. eq ";(J*);"5000 “
345 BEEP .1,20
350 INPUT INVERSE l;"OR ENTER ’M’ <MENU)”;U$
352 IF U*=”M" THEN GO TO 850
355 IF LEN U*<4 THEN GO TO 180
360 IF U*< TO 3>=K* THEN LET Y=VAL U$(4 TO
): LET Q$=STR* (Y*C/M): GO SUB 3000: LET X=Q:
GO TO 390
370 IF U*( TO 3)=J* THEN LET X=VAL U*(4 TO
): LET Q$=STR* (X*M/C): GO SUB 3000: LET Y=Q:
GO TO 390
380 GO TO 130
390 PRINT AT 12,16;" ";J*;TAB 25;K*; ” ”!A
t 13,16;” ";at 13,16;x;tab 24;
Y; PAPER 6;AT 15, 18; "Press’ ENTER’to";AT 16,18
; "corit i nue here . "
395 GO TO 180
399 REM **COST SPREADSHEET
400 CLS : PRINT INVERSE 1?" HOLIDAY
EXPENSES
405 PRINT TAB 10; "M”; TAB 16; " N " ! T AB 22; ,, 0” ;T
AE 285"P”
410 PRINT "CHARGES”;TAB 9;N$<1) 5 TAB 15;N$(2)
;tab 21;n$(3);tab 27;n*<4)
415 PRINT OVER 1;AT 1,0;"_
417 PRINT OVER 1;AT 2,05"_
420 PLOT 59,167: DRAW INK 1; OVER l;0,-110
430 PLOT 111,167: DRAW INK 1; OVER 150,-110
: PLOT 159,167: DRAW INK 1; OVER l;0,-110: P
LOT 207,167: DRAW INK 1} OVER l;0,-110
440 FOR X=1 TO 12: PRINT AT X+2,0;CHR$ (X+64
); " >'■ ;C*(X) : next x
445 FOR X=1 TO 12: FOR Y=1 TO 4: PRINT AT X+
2 ,2+6 *y;c<x,Y);: next y: next x
450 PRINT OVER 15 AT 14,0;"_
455 BEEP .1,10
460 IF TF=1 THEN LET TF=0: GO TO 560
480 IF CF=0 THEN GO TO 530
495 LET CF=0
Holiday Expenses 99
500 PRINT AT 20,0; INVERSE 15"ENTER CHARGE C
ODE LETTER TOGETHER WITH NEW NAME ( eg BTOURS
)
505 INPUT INVERSE 1;"OR ENTER ’M’ FOR MENU
";X*: IF X*= ,, M" THEN GO TO 850
510 IF X$=" " OR LEN X*<2 OR X*(1X"A B OR X* (
1)>“L” THEN GO TO 505
520 LET C$(CODE X$(1)-64 ) =X*(2 TO ): FOR X=1
TO 12: PRINT AT X+2,0;CHR* (X+64C$(X);
: NEXT x: GO TO 500
530 PRINT AT 20,0; INVERSE 1;”TO ENTER A COS
T ITEM, ENTER ROW/COLUMN WITH AMOUNT eg AM2
00
535 INPUT FLASH 1;"OR ENTER ’M’ FOR MENU ";
X$: IF X*= ,, M" THEN GO TO 350
537 IF X*=”“ THEN GO TO 530
540 IF X*(i><“A“ OR X*(1)>"L" OR X*(2X"M" O
R X$<2 )>"P" OR LEN X$<3 THEN GO TO 530
545 LET Q*=X$(3 TO ): GO SUB 3000: LET C(COD
E X$<1)-64,C0DE X*(2)-76)=Q: PRINT AT CODE X*
(1)-62,2+6*<C0DE XS(2)-76);Q
550 BEEP .1,20
555 GO TO 530
559 REM **CALCULATE TOTAL COSTS
560 BEEP .05,13: LET T=0: FOR X=1 TO 4: LET
C ( 13,X)=0: NEXT X: FOR X=1 TO 12: FOR Y=1 TO
4: LET C <13,Y)=C(13,Y)+C <X,Y) : NEXT Y: NEXT X
562 FOR X=1 TO 4: BEEP .05,25: IF C(13,X)=0
THEN GO TO 564
563 LET Q$=STR* C(13,X>: GO SUB 3000: LET C<
1 3, X) =Q
564 NEXT X
565 BEEP .1,20: PRINT AT 15,8;C(13,1)!TAB 14
!C(13,2);TAB 20;C(13,3) 5 TAB 26;C(13,4)
567 BEEP .1,13: PRINT AT 15,0;"TOTALS";AT 16
,0!” RATE"5 AT 17,0;" £STG"
570 FOR X=1 TO 4
572 PRINT AT 16,1+6*X;R(X): LET Q«=STR$ (C(l
3,X)/R(X)): GO SUB 3000: PRINT AT 17,1+6*X;Q:
LET T=T + Q
574 NEXT X
575 BEEP .1,1
530 LET Q*=STR* T: GO SUB 3000: PRINT AT 18,
14;"GRAND TOTAL=£";Q
100 Holiday Expenses
590 BEEP 1,1: INPUT INVERSE 1i"PRESS<ENTER>
TO RETURN TO MENU“j X$
595 GO TO 850
600 CLS : PRINT AT 0,7; PAPER 15 INK 7;"H0LI
DAY EXPENSES"
605 LET S$="
": LET B$=CHR
$ 8+CHR* 8+CHR* 3+CHR$ 8
610 PRINT : PRINT " THIS PROGRAM WILL HELP Y
OU TO CALCULATE YOUR APPROXIMATE FORE
IGN CURRENCY NEEDS FOR A TOUR THROUGH ONE,
OR SEVERAL COUNTRIES."
620 PRINT : PRINT "INTERNATIONAL EXCHANGE RA
TES ARE ALWAYS BASED ON THE AMERICAN DOLLAR
RATE FOR EACH CURRENCY. FOR EXAMPLE,THE STE
RLING/PESETAS RATE IS PRODUCED FROM THE STG/$
AND */PTS RATES."
630 PRINT : PRINT "THE DIFFERENCE BETWEEN ’B
UYING’ AND ’SELLING' PRICE FOR CURRENCY NOTE
S OR TRAVELLERS’ CHEQUES REPRESENTS THE BAN
K’S ’PROFIT’ ON THE TRANSACTION. A SMALL
COMMISSION CHARGE IS ALSO OFTEN AD
DED. "
635 BEEP .1,10
640 INPUT FLASH 1; "PRESS <ENTER>"; FLASH 0;
X*
650 CLS : PRINT AT 0,7; PAPER 1; INK 7;"H0LI
DAY EXPENSES"
660 PRINT : PRINT " BECAUSE OF THE USUALLY
WIDE ’SPREAD’ BETWEEN BUY AND SELL QUOTED
FOR TOURIST RATES, IT IS ALMOST ALWAYS SAF
ER TO AVOID MULTIPLE EXCHANGE TRANSACTIONS."
665 PRINT : PRINT "TAKE ABOUT £5/10 OF SMALL
DENOMINATION";B$;B*iB$iB*;CHR* 8;CHR* 8; OVE
R 1 ; "_"; OVER 0;" FOREIGN NO
TES FOR EACH COUNTRY YOU WILL VISIT, FOR US
E ON ARRIVAL. IF YOU ARE DEPARTING FROM A BI
G AIRPORT THESE ARE USUALLY AVAILABLE FROM
A BANK IN THE ARRIVALS";B$;B$! OVER 1;
"_“; OVER 0;" HALL"
670 REM PRINT : PRINT " ALSO, SEVERAL CURR
ENCIES ARE CHEAPER TO BUY BEFORE YOU LEAVE
HOME AND OTHERS ARE CHEAPER TO BUY WHEN YOU
ARRIVE AT YOUR DESTINATION."
Holiday Expenses 101
680 PRINT : PRINT "THE FOLLOWING TOURIST RAT
ES ARE INCLUDED ONLY AS A VERY ROUGH GUIDE.
ACTUAL MARKET RATES WILL VARY, OFTEN QUITE
WILDLY, FROM DAY TO DAY."
685 BEEP .1,10
690 INPUT FLASH IMPRESS < ENTER > ” ; FLASH 0;
X*
695 REM * INITIALISE CURRENCIES AND HOLIDAY
COST ITEMS
700 FOR X=1 TO 4: READ N*(X): NEXT X
705 FOR X=1 TO 4: READ R(X): NEXT X
710 FOR X=1 TO 12: READ C*(X): NEXT X
740 REM **** M E N U *******
750 CLS : PRINT AT 0,7; PAPER 1; INK 7;"H0LI
DAY EXPENSES"
760 PRINT : PRINT " THE PROGRAM IS IN 3 SECT
IONS:",,TAB 7;"1 RATES ENTRY”;TAB 7;"2 CROSS
RATE CALCULATION";TAB 7;”3 HOLIDAY COSTS"
770 PRINT : PRINT " FOUR CURRENCIES CAN BE H
ANDLED AT THE SAME TIME. THE PRESENT 4ARE ";
INVERSE 1;N$(1); INVERSE 05",“; INVERSE 1;N*
< 2) ; INVERSE 0;",”; INVERSE 1;N*(3> ; INVERSE
0;","; INVERSE UN* (4); INVERSE 0;". BUT YOU
MAY CHANGE THESE BY FOLLOWING THE
PROMPTS"
780 PRINT : PRINT "SELECT "; INVERSE 1;"CAPS
LOCK"; INVERSE 0;" (CAPS SHIFT + 2UTHE CURSOR
SHOULD ALWAYS BE A "; FLASH 1;”C"; FLASH 0;"
DURING INPUT"
790 PRINT : PRINT "CURRENCY CODES SHOULD ALW
AYS BE THREE CAPITAL LETTERS"
795 BEEP .1,10
800 INPUT INVERSE 1; "PRESS <ENTER> ";X*
810 GO TO 1800
850 CLS : PRINT AT 0,7; PAPER 1; INK 7;"H0LI
DAY EXPENSES"
855 PRINT AT 3,8;"* * M E N U * *"
860 PRINT AT 7,35"1 RATES TABLE (VIEW ONLY)
870 PRINT AT 8,3;"2 CHANGE RATES/CURRENCIES
880 PRINT AT 9,3;"3 CROSS RATES CALCULATION
390 PRINT AT 10,3;"4 HOLIDAY COSTS TABLE"
102 Holiday Expenses
892 PRINT AT 11,3;"5 CHANGE A COST CATEGORY
895 PRINT AT 12,3;"6 CALCULATE TOTAL COSTS"
900 BEEP .1,10: PRINT AT 14,7; INK 2; FLASH
I!"PRESS SELECTION"
910 LET X=PEEK 23556: IF X=255 OR X<49 OR X>
54 THEN GO TO 910
920 IF X=49 THEN LET VF = 1: GO TO 1800
930 IF X=50 THEN GO TO 1300
940 IF X=51 THEN GO TO 50
950 IF X=52 THEN GO TO 400
960 IF X=53 THEN LET CF=1: GO TO 400
965 IF X=54 THEN LET TF=1: GO TO 400
970 GO TO 350
1798 STOP
1799 REM ** Approx tourist rates
1800 CLS : PRINT INK 2; PAPER 6; INVERSE 1;"
APPROXIMATE TOURIST RATES £STG="; INVERSE 0
1805 LET X=27
1810 PRINT " US* USA dollar”;TAB X;"1.52"
1820 PRINT " CN* CANADA dollar”;TAB Xi”1.87"
1330 PRINT " FFR FRANCE -franc"; TAB X; " 11.6 ”
1340 PRINT " BFR BELGIUM (IkLux ) -franc" ; TAB X;”
76.5"
1850 PRINT " ITL ITALY lire";TAB X;"2265"
1860 PRINT " SFR SWITZERLAND -franc"; TAB X;"3
. 22 "
1870 PRINT " DMK W.GERMANY D.mark";TAB X;"3.
84"
1830 PRINT " ASH AUSTRIA schi11ing";TAB X;"2
7.0"
1890 PRINT “ ESC PORTUGAL escudo";TAB X;"154
1900 PRINT " SPA SPAIN peseta";TAB X;"211"
1910 PRINT " HFL HOLLAND guilder";TAB X;"4.3
0"
1915 PRINT " NKR NORWAY krona";TAB X;"11.0"
1920 PRINT " IRP IRELAND punt”;TAB Xj"1.22"
1930 PRINT " DRA GREECE drachma";TAB X;”128"
1940 PRINT “ MLT MALTA pound”;TAB X;"0.64"
1950 PRINT " YGD YUGOSLAVIA dinar";TAB X;“12
1960 PRINT " YEN JAPAN yen";TAB X;"367"
1970 PRINT " AU* AUSTRALIA dollar";TAB X;"l.
Holiday Expenses 103
74 "
1980 PRINT " NZ$5 NEW ZEALAND dollar” ; TAB X;"
2.32"
1982 IF VF=1 THEN PRINT AT 21,0; INVERSE 1;"
PRESS < ENTER > TO RETURN TO MENU": BEEP .1,10
: INPUT X*: LET VF=0: GO TO 850
1985 FOR Y=1 TO 4
1990 PRINT AT 20,0; FLASH 1;”CURRENCY ";Y;” I
S " ;N$(Y>;". PRESS <ENTER> TO KEEP ”;N*<Y) ! " ,
OR ENTER A NEW CODE"
1995 BEEP .1,10
2000 INPUT "CURRENCY ”;(Y);” (*;(N*<Y));”)”;X
$
2010 IF X$="" THEN PRINT AT 20,0;S$;AT 20,0;
INK 25 FLASH 1! " PRESS <ENTER> TO KEEP PRESE
NT “;N*(Y) ; ” RATE: ”;R(Y) ; ", OR ENTER NEW RAT
E": GO TO 2040
2020 FOR X=1 TO 13: LET C(X,Y)=0: NEXT X
2025 LET N*(Y)=X*
2030 PRINT AT 20,0;S*;AT 21,0; INK 2; FLASH 1
;" ENTER THE NEW RATE FOR ";N*<Y);“
2040 BEEP .1,15
2045 INPUT Q<S: IF Q*='"* THEN GO TO 2070
2050 IF CODE Q$<43 OR CODE Q*>57 THEN GO TO
2045
2060 GO SUB 3000: LET R<Y)=Q
2070 NEXT Y
2030 GO TO 850
2999 REM ** NUMBER CLEAN-UP
ROUTINE
3000 LET Q=VAL Q*: IF GK10 THEN LET Q=(INT <
100*Q))/100: RETURN
3010 IF GK100 THEN LET Q=(INT (10*Q))/10: RE
TURN
3020 LET Q=INT Q
3030 RETURN
3999 REM ** INITIAL DATA
4000 DATA "FFR",”SFR","US$",”ITL”
4005 DATA 11.6,3.22,1.52,2265
4010 DATA "HOTEL","TOURS","BUS",“MEALS","FOOD
","DRINK",“LAUND","FUEL",“POST","PHONE","GIFT
S" , "SUNDR”
104
Ambush
High resolution graphics make this forest scene something worth seeing!
You are trapped by snipers hiding amongst the trees. Your only shelter is
a low wall. Can you kill ail the snipers before one of them succeds in
shooting you.
10 REM **SNIPER AMBUSH** @19
83 MICHAEL BEWS
20 DIM P < 5,5) : DIM L < 11,2) : DIM S < 5, 2 ) : DIM
S$(2,2)
30 LET TB=5000: LET TM=0: LET K$="000000000
0 " : LET MN=0: LET AI=0: LET FR=0: LET MX=80
40 PAPER 4: INK 7: BORDER 1
50 GO TO 600
100 REM **KEYBOARD INPUT
120 LET TM=TM+l: PRINT INK 0; PAPER 6;AT 15
,28;TM
125 LET A=PEEK 23556: IF A=255 THEN GO TO 2
00
130 IF A = 65 THEN PRINT AT 13,10;R$: LET MN=
1: GO TO 200
140 IF A=90 THEN PRINT AT 13,10:0$: LET MN=
0: GO TO 200
150 IF <A = 66 AND MN=1) THEN LET FR=1: GO TO
200
160 IF A=73 THEN LET MX=MX-S: GO TO 200
170 IF A=77 THEN LET MX=MX+8: GO TO 200
180 GO TO 120
199 REM *ACTION ROUTINE
210 IF MX<0 THEN LET MX=0
215 IF MX>220 THEN LET MX=220
220 IF FR=0 THEN GO TO 300
225 LEI FR=0
230 LET Y=23
235 IF MX< 42 THEN LET Y=Y + 32: GO TO 250
240 IF MX<70 THEN LET y=y+7: GO TO 250
242 IF MX<124 THEN LET Y=Y+S: GO TO 250
244 IF MX<164 THEN GO TO 250
248 LET Y=Y-8
250 REM *TRACERS AND SOUND
Ambush 105
255 PLOT OVER 1,82,72
260 DRAW OVER i;MX-60,Y
262 FOR X=57 TO 53 STEP -1: BEEP .005,X: NEX
T X
265 PLOT OVER 1,82,72
270 DRAW OVER 1;MX-6.0,Y
272 REM #CHECI< FOR HIT
275 IF MX>29 AND MX<35 AND K*<1>>"0" THEN P
PINT AT 5INK 0; PAPER 4;' , ^SA' ,, : LET K*
(6)="1”: GO TO 290
278 IF MX >61 AND MX<67 AND K*<2>>"0" THEN P
RINT AT 8,3; " /?S“ ; INK 0; PAPER *4 ; ” <9//" : LET K*
( 7) = ’• 1 • : GO TO 290
280 IF MX >101 AND MX< 107 AND K«(3)> ,, 0" THEN
PRINT AT 3, 13; "fiS" ; INK 0; PAPER 4;"G/V" : LET
K*(3)="1": GO TO 290
282 IF MX>144 AND MX<155 AND K*<4)>"0" THEN
PRINT AT 9,19;" PS “; INK 0; PAPER A;" GH ": LET
K$<9)=”1"; GO TO 290
285 IF MX >185 AND MXC195 AND K*<5)>"0" THEN
PRINT AT 10, 24; " RS" ; INK 0; PAPER <\\”GH a i LE
T K$(10)="1"
289 REM *CHECK FOR WIN
290 IF KSM6 TO 10) = "11111" THEN GO TO 850
299 REM *SNIPER ROUTINE
310 LET K=1+INT (RND*5)
315 IF K*(K+5)=”1" THEN GO TO 120
320 IF K$<K)="4" THEN PRINT INK 0; PAPER 4
AT S < K, 1) ,S < K,2) ;S$ < 2) ;
330 IF K$(K)="5" OR a<*(k)="7“ AND MN=0) THE
J GO SUB 400
340 LET KS(K)=CHR$ (CODE K$(K)+1)
350 IF K$(K)>"7" THEN PRINT INK 0; PAPER 4
iAT S(K,1),S<K,2);S$(1);: LET K$(K)="0"
360 GO TO 120
399 REM *SNIPER FIRING
405 LET N=1+INT (RND*P(K,4))
410 LET NX=N-P(K,3)
420 PLOT OVER ljP<K t l),P<K,2)
425 DRAW OVER 1;NX,-P(K,5)
430 FOR X=50 TO 47 STEP -1: BEEP .005,X: NEX
T X
435 PLOT OVER 1JP(K,1),P<K,2)
440 DRAW OVER 1;NX,-P(K,5)
106 Ambush
445 IF MN=0 THEN RETURN
450 IF P (K, 1)+NX>78 AND P(K,i)+NX<86 THEN P
RINT AT 13, 105 <3*5 AT 15,9;P*;: GO TO 830
460 RETURN
598 STOP
599 REM ^INITIALISATION
602 CLS : PRINT INK 1; PAPER 7;"A M B U S H
@1983 MICHAEL BEWS";AT 4,0;"YOU HAVE BEEN
AMBUSHED BY GUNMENIN A FOREST. THE ONLY SAFE
PLACE IS A LOW WALL BEHIND WHICH YOU TAKE COV
ER. "
603 PRINT AT 9,0; INK 1; PAPER 7;“YOU MUST T
RY TO KILL ALL GUNMEN BY AIMING OVER THE TOP
OP THE WALL. BUT THE SNIPERS ARE QUITE GOOD
SHOTS!";AT 16,0;"HOW LONG CAN YOU SURVIVE?..
608 LET -f$=CHR$ 21+CHR* 1 + "
“ +CHR$ 21+CHR* 0
610 LET G*=CHR* 21+CHR5 1+“
“+ CHR$ 21+CHR* 0
615 FOR x—0 TO 7: FOR y=l TO 9: READ a: POKE
USE CHRS ( 143 + y)+>c, a: NEXT y: NEXT x
620 FOR x=0 TO 7: READ a,b: POKE USR "J"+ x,a
: POKE USR “ K ,! + x , b : NEXT x
625 FOR X=1 TO 11: READ L(X,1): READ L(X,2):
NEXT X
630 FOR X=0 TO 7: READ A: POKE USR "6"+X,A:
NEXT X: LET W %=“LLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LLL"
640 LET t*= u fiBC a +i$+"D£/ ru +f*+"GffZ"
645 LET SS<1 )= H GH ": LET S$<2)=“ JK"
650 FOR X=0 TO 7: READ A: POKE USR CHR* (156
)+X,A: NEXT X
655 FOR X=0 TO 7: READ A, B: POKE USR "/?" +X,A
: POKE USR "S” +X,B: NEXT X
660 FOR X=0 TO 7: READ A,B: POKE USR "7"+X,A
: POKE USR “U“ +X,B: NEXT X
665 LET Q$=CHR$ 16+CHR* 0+CHRS 17+CHR* 4+" "
+ G$+ "L " +G$+ “M" : LET F'$="RS , ‘
670 LET R$=CHR$ 16+CHR* 0+CHR* 17+CHR* 4+" T“
+ G$ + “(/“ +G$+ 11 “
675 FOR X=1 TO 5: READ S(X,1>: READ S(X,2):
NEXT X
680 FOR x=l TO 5: FOR y=l TO 5: READ P(X,Y):
Ambush 107
NEXT Y: NEXT X
690 INPUT INK 7; PAPER 2;"PRESS<ENTER>T0 FI
ND OUT!!!";X$
700 REM **PRINT SCENE**
705 CLS : PRINT PAPER 6; INK 1;"A M B U S H
@1983 MICHAEL BEWS”
707 FOR x = 10 TO 26 STEP 4: PRINT INK 0; PAP
ER 4;AT l,x$t$: NEXT x
710 FOR x=l TO 11: PRINT INK 0;AT L(X,1),L(
X,2);t$;: NEXT X
715 FOR X=3 TO 11: PRINT AT L(X,1)+2,L (X,2) +
2; INK 6;“I ";: NEXT X
720 PRINT INK 0;AT 15,0;T*;AT 17,3;T$
730 PRINT INK 0;AT 14,0;WS
800 PRINT AT 13,10;
805 PRINT AT 15,23; INK 0; PAPER 6;“TIME:
810 PRINT AT 20,0; PAPER 2; INK 7;"SHOOT SNI
PERS AS THEY FIRE. KEYS ’ AfcZ ’ (UP/DN) ’ NteM ’ (AIM)
’B’(FIRE)“
820 GO TO 100
829 REM ** PLAYER SHOT!
830 PRINT AT 20,0; PAPER 7; INK 2;"
";AT 20,0; FLASH l;"YOU HAVE BEEN S
HOT! IN TIME:"5TM;AT 21,0;"THIS IS THE SNIPER
WHO SHOT YOU''"
832 PRINT INK 0; PAPER 4; FLASH 1;AT S(K,1)
, S (K, 2) ; s* (2) ;
335 BEEP .3,1: PAUSE 5: BEEP .5,1: PAUSE 2:
EEEP .3,1: BEEP .8,1: BEEP .5,4: PAUSE 2: BEE
P .4,3: PAUSE 2: BEEP .4,3: PAUSE 2: BEEP .5,
l: PAUSE l: BEEP .8,1: PAUSE 4: BEEP .5,0: BE
EP 1,1
840 GO TO 860
349 REM *ALL SNIPERS DEAD
850 IF TB >TM THEN LET TB=TM
855 PRINT AT 20,0; PAPER 7; INK 2;"
”!AT 20,0; FLASH 1;"YOU SHOT ALL 3N
IPERS IN TIME:”5TM;AT 21,0;“BEST TIME SO FAR:
" 5 TB
857 FOR Y=1 TO 5: FOR X=1 TO 10: BEEP .05,X*
2: NEXT X: NEXT Y
108 Ambush
860 INPUT INK 05 PAPER 7; FLASH 1;"PRESS <E
NTER > FOR NEXT GAME“j
870 LET MX=80: LET K$ ="0000000000"
880 LET TM=0: LET MN=0: LET FR=0
890 GO TO 700
998 STOP
999 REM Htree
1000 DATA 3,15,0,127,255,252,0,60,8,3,255,192
,63,255,138,0,60,0,15,255,240,55,247,248,0,60
,138,15,255,248,31,63,248,0,60,40,126,255,126
,31,60,240,0,60, 138, 127,255,254,24,60,48,0,60
,162,255,255,252,0,60,0,0,60,160,127,223,252,
0,60,0,0,60,32
1009 REM * sniper-
1010 DATA 0,252,63,252,2,124,3,252,0,124,1,25
2,1,124,3,60
1019 REM -jf * tree PRINT AT FILE
1020 DATA 2, 4, 1 , 18,3,6,2,20,3., 24,4, 1 1,4,29,6,
10,6, 15,7,21,3,26
1029 REM **WALL
1030 DATA 51,255,219,255,253,255,183,255
1039 REM **MAN CROUCHING
1040 DATA 249,113,113,33,255,113,123,219
1049 REM *MAN DOWN
1050 DATA 0,0,0,0,0,0,0,0,160,0,247,224,255,2
41,247,255
1059 REM *MAN STANDING
1060 DATA 248,115,113,255,115,251,118,255,33,
253,250,251,254,247, 112,255
1069 REM *s> iper print st -file
1070 DATA 5,6,8,10,8,15,9,21,10,26
1079 REM *sniper firing coords
1080 DATA 47,127,10,50,54,79,110,39,70,37,119
,110,60,60,37,167,102,127,30,29,207,94,200,12
0 , 21
4000 BORDER 7: PAPER 7: INK 0: CLS
109
Numbers
If you’re a Roman who doesn’t understand numbers to base 3, then this
is the program for you. Convert between binary, hexadecimal, decimal
and Roman numerals, plus any other number systems (to different bases)
you care to invent. 7 fingered aliens catered for!
10 REM ** ROMAN NUMBERS @1
982 MICHAEL BEWS
15 POKE 23609,111: POKE 23658,255
2.0 BORDER 3: PAPER 1: INK 7
25 DIM K(3): DIM A*(8): DIM C<25)
30 GO TO 550
35 GO TO 550
39 REM **ROMAN NUMBERS
40 LET L=5: CLS
50 PRINT PAPER 2;"ROMAN NUMBERS @1983 MICH
AEL BEWS"
60 PRINT PAPER 2;AT 2,0;"ENTER A COMPLETE
ROMAN NUMBER EXAMPLE: MCMLXXXIV
65 PRINT INVERSE 1;AT 21,0; "PRESS < ENTER >
TO RETURN TO MENU "
70 INPUT "ROMAN NUMBER " ; T$
75 PRINT AT 20,0;“
80 IP THEN GO TO 600
90 PRINT AT L, 0; "
"5 PAPER 6; INK 2;AT L,0;"ROMAN NUMBER:
" ; T$;
95 FOR B=1 TO 3: BEEP .05,14: BEEP .05,17:
NEXT B
100 FOR X=1 TO LEN T$
110 LET C(X)=(1000 AND T$(X)="M“)+(500 AND T
$ ( X)="D"! + <100 AND T$(X)=“C") + (50 AND T*(X)="
L ! ' ) + ( 10 AND T$ (X) = 11 X " ) + (5 AND T$ (X ) = " V ” ) + ( 1 A
ND (T$(X)="I" OR T$(X>="1"))
120 IF C(X)<1 THEN PRINT AT 20,0;" "; FLA
SH ii" ";T*(X)5" IS NOT A ROMAN NUMBER !!": G
O TO 65
130 NEXT X
110 Numbers
130 LET T=0
190 FOR X—1 TO LEN T$
200 IF C(X+1)>C(X) THEN LET C(X)=-C(X)
210 LET T = T + C < X)
220 LET C(X)=0
230 NEXT X
240 LET X=0: IF LEN T$>9 THEN LET X=1
250 PRINT INK 2; PAPER 6}" = "5 AT L+X,26;T;
255 FOR B=1 TO 3: BEEP .05,2: BEEP .05,10: N
EXT B
260 LET L=L+2: IF L>20 THEN INPUT PAPER 2;
INK 7i"PRESS<ENTER>TO RETURN TO MENU";X*: GO
TO 600
270 GO TO 70
299 REM VARIABLE BASE CALCULATOR
310 CLS : PRINT INVERSE 1;"VARIBASE CALCULA
TOR @1983 M.BEWS"
320 PRINT INK 7; PAPER 2:AT 17,0CHOOSE AN
Y BASE BETWEEN 2 AND 24<Deciroal equivalent'.
WE SHALL USE LETTERS ’A to N’ FOR SYMBOLSREQ
UIRED AFTER 9 UP TO ONE LESS THAN THE CHOS
EN BASE VALUE
330 INPUT INK 7; PAPER 0J"ENTER CHOSEN BASE
(2 to 24)";X$
340 IF LEN XSK1 OR LEN X$>2 THEN GO TO 330
350 IF X$(1)<"0" OR X$ (1 ) >" 9 11 THEN GO TO 33
0
360 IF LEN X$=2 THEN IF X*(2)<' , 0" OR X*<2)>
”9" THEN GO TO 330
370 IF VAL X$<2 OR VAL X$>24 THEN GO TO 330
375 LET B=VAL X$
380 CLS : PRINT INVERSE l!"VARIBASE CALCULA
TOR @1983 M.BEWS”
390 PRINT AT 2,0; PAPER 5! INK 1;”BASE: 11 ; A
T 2,5;B;AT 2,25;"Decimal”;AT 3,255"Equivt.”
395 LET X$="": IF B<10 THEN LET X*=" "
400 PRINT AT 4,0;X*;B;”<5";X*;B; "F" ;x$;B;;
x$;B; "D“ ;x*;B; n C"; x$;B; "B n ;x*;B;"4";x$;B;" H :”
410 LET K0=99999: IF B=3 THEN LET K0=6560
415 IF B=2 THEN LET KO=255
420 FOR X=1 TO 8: LET N=K(X): PRINT AT 4+X,2
5; ”= ";N;AT 4 + X,0;: GO SUB 445
425 FOR Y=3 TO 1 STEP -1: PRINT TAB <25-Y#3>
Numbers 111
i A*(V);: NEXT Y
430 NEXT X
435 GO TO 430
440 REM *MULTIBASE CALC SUBROUTINE
445 FOR Z=1 TO 8: LET A*(Z>="": NEXT Z
450 LET NA=N: FOR Z=1 TO 8
455 LET I = INT (NA/B): LET A*(Z)=CHR$ (43+(NA
-B*I>+<7 AND (NA-B*I)>9))
460 IF I>=B THEN LET NA=I: NEXT Z
465 LET AS(Z+1)=CHR$ (4S+I+<7 AND I>9))
470 RETURN
479 REM *DECIMAL INPUT FOR CONVERSION
480 PRINT INK 7; PAPER 2;AT 19,05"INPUT A D
ECIMAL NUMBER FOR CONVERSION
TO BASE "(AT 20,30;B
485 PRINT INVERSE l;”OR PRESS<ENTER>TO RETU
RN TO MENU";
490 INPUT FLASH 1;“(BETWEEN 1 AND “;(KO);")
" 5 X$
495 IF X*="'' THEN GO TO 600
500 FOR X=1 TO LEN X$: IF X$(X)<"0" OR X35(X)
>"9" THEN GO TO 490
505 NEXT X: LET N=INT (VAL X*): IF N<1 OR N>
KO THEN GO TO 490
510 GO SUB 440
520 PRINT AT 13,0;"
";AT 13,0;
530 FOR Y=8 TO 1 STEP -1: PRINT TAB (25-Y*3)
;A*(Y);: next Y
540 PRINT “ = ” ; N
545 GO TO 430
543 STOP
549 REM ^initialisation
550 CLS : PRINT INVERSE 1;"NUMBER SYSTEMSS1
983 MICHAEL BEWS"
555 FOR x=0 TO 7: POKE USR ” A "+x,32-32*1NT (
x /5)+(64 AND X=1): NEXT x
560 FOR x=l TO 8: FOR y=0 TO 7: READ a: POKE
USR CHR$ (144+x)+ y, a: NEXT y: NEXT x
570 FOR X—1 TO 8: READ K(X): NEXT X
600 CLS : PRINT INVERSE 1;"NUMBER SYSTEMS@1
933 MICHAEL BEWS"
610 PRINT AT 2,0;" THIS PROGRAM EXAMINES A
FEW OF THE MANY COUNTING SYSTEMS AND EN
112 Numbers
ABLES YOU TO INVENT SOME OF YOUR OW
N
620 PRINT AT 7,5; INVERSE 1;" MENU
“;AT 9,5;"1 ROMAN NUMBERS " i AT
10,5!"2 DECIMAL SYSTEM ";AT 11,5;”3
BINARY SYSTEM ”;AT 12,5;”4 HEXADECIMAL
";AT 13,5;“5 INVENT YOUR OWN!
630 PRINT INVERSE 1; AT 1-7, Sj "SELECT KEY NUM
BER"
640 LET A=PEEK 23556: IF A=255 THEN GO TO 6
645 BEEP .05,20
650 IF A< 49 OR A
660 IF A=49 THEN
665 IF A=49 THEN
670 IF A=50 THEN
690 IF A=51 THEN
690 IF A=52 THEN
700 IF A=53 THEN
53 THEN GO TO 640
GO TO 300
GO TO 40
GO TO 900
GO TO 1100
GO TO 1200
GO TO 310
’99 REM tfROMAN EXPLANATION
!00 CLS : PRINT PAPER 2;”R0MAN NUMBERS @198
MICHAEL BEWS"
i 10 PRINT INVERSE 1;AT 6,0; " IN THE RO
MAN SYSTEM
820 PRINT
L=50 X=10
840 PRINT
TER COMING
INVERSE 1;”M=1000 D=500 C=100
V=5 AND 1=1
INK 2; PAPER 7;"A LOWER VALUE LET
IMMEDIATELY IN FRONT OF A HIGH
ERVALUE LETTER IS SUBTRACTED FROM THE TOTAL I
NSTEAD OF BEING ADDED SO THAT LX=60 AND X
L=40 "
850 INPUT INK 7; PAPER 2; "PRESS <ENTER> *'5 X
870 LET RF=l: GO TO 40
899 REM *DECIMAL EXPLANATION
900 CLS : PRINT PAPER 2;"DECIMAL SYSTEM
(Base 10)"
910 PRINT : PRINT INVERSE 1;"ORIGIN: Ten f
ingers and thumbs make It convenient
to count in groups o-f ten!"
920 PRINT : PRINT INVERSE 1;“METHOD: All c
ounting systems need enough Symbols to repr
esentthe count -from zero up to one less tha
n the base number. This means that symbols 0
Numbers 113
1 2 3 4 5 67 8 9 are needed -for DECIMAL. Th
ere is no separate symbol -forthe BASE (Ten i
n the case of Decimal),";
930 PRINT INVERSE 1;” the BASE being repre
-sented by 1 0 to indicate 1 complete g
roup of ten items, plus 0 remainder.
940 INPUT INK 7; PAPER 2;"PRESS <ENTER>
950 CLS : PRINT PAPER 2;"DECIMAL SYSTEM
(base 10)“
960 PRINT : PRINT INVERSE 1; “ ’1 0 0’ ther¬
efore means ten groups of ten and ’100 0’
is ten times ten groups of ten or 10 x 10
x 10 which is the same as 10C (10 to the pow
er of 3) .
970 PRINT : PRINT "106 10F 106 106 106' 106 1
0-4 10-9"
980 PRINT " 100 0"
990 PRINT : PRINT INVERSE 1;"N0TE: ANY NUMB
ER RAISED TO THE POWER OF 1 (eg 10-4) IS I
TSELF";CHRS 8;CHR* 8;CHR$ 8;CHR$ 3;CHR$ 3;CHR
* 8; INVERSE 0; OVER 1;"_
1000 PRINT : PRINT INVERSE 1;" AND ANY NUMEE
R RAISED TO POWER 0 (eg 106) IS ALWAYS 1
1010 PRINT INVERSE l;"Using this convention,
relating ascending powers of the BASE val
ue, you can create a countingsystem to any BA
SE you wish!
1020 INPUT INK 2; PAPER 7PRESS < ENTER> ";X
%\ LET B=10: GO TO 380
1030 GO TO 600
1099 REM *BINARY EXPLANATION
1100 CLS : PRINT PAPER 2;"BINARY SYSTEM
(Base 2)"
1110 PRINT : PRINT INVERSE 1;"MECHANICAL AND
ELECTRICAL SWITCHES ARE SIMPLEST AND M
OST RELIABLE WHEN THEY HAVE ONLY TWOPOSSIBLE
STATES, ’ON’ AND ’OFF’."
1120 PRINT INVERSE i;"FROM OUR NOTES ON THE
DECIMAL SYSTEM WE CAN SEE THAT BINARY NEE
DS ONLY TWO SYMBOLS ’0’ AND ’1’TO COUNT UP T
0 ANY EQUIVALENT"
114 Numbers
1130 PRINT INVERSE 1;"DECIMAL VALUE. USING
THE ’OFF’ STATE OF A SWITCH OR CIRCUIT TO REP
RESENT ’0’ AND THE ’ON’ STATETO REPRESENT ’1’
, IT IS POSSIELETO REPRESENT ANY DECIMAL NUMB
ER "
1140 PRINT INVERSE 1;"USING A CHAIN OF VERY
SIMPLE TWO-STATE DEVICES.
1145 INPUT INVERSE li"PRESS <ENTER > "iX*
1150 LET B=2: GO TO 380
l 199 REM -((HEXADECIMAL EXPLANATION
1200 CLS : PRINT PAPER 25"HEXADECIMAL
(Base 16)"
1210 PRINT INVERSE 1;AT 5,0;" COMPUTERS WORK
BEST IN BINARY. “
1220 PRINT INVERSE 1 UNFORTUNATELY HUMANS D
0 NOT: 187DECIMAL IS 10111010 IN BINARY!
1230 PRINT INVERSE 1;“THIS COMPUTER USES 8 B
IT BYTES. EACH BYTE CAN HOLD NUMBERS FROM 0
TO 255 lie llilllll BINARY). 16(DEC IMA
L) IS 2D
1240 PRINT INVERSE l;”SO HEXADECIMAL IS A GO
OD COMPROM-ISE BETWEEN COMPUTER AND HUMAN.AND
NUMBERS FROM 0 TO 255 (DEC) ARE ALL JUST T
WO HEX DIGITS.
1250 INPUT FLASH 1;"PRESS<ENTER> “ 5 X$: LET B
=16: GO TO 380
2000 DATA 240,16,32,64,240,0,0,0,240,16,112,1
6,240,0,0,0,128,128,160,240,32,0,0,0,240,128,
240,16,240,0,0,0,192,128,240,144,240,0,0,0,24
0,16,32,64,128,0,0,0
2010 DATA 96,144,144,144,96,0,0,0,240,144,96,
144,240,0,0,0,1,5,8,10,16,20,32,255
115
Toptrainer hsk)
This is a horseracing game in two parts. In the first section players are
presented with a board on which their counters are randomly moved by
the computer. This offers players the opportunity to buy and sell horses,
win or lose money, train their nags and prepare for stage two, the actual
race. Prior to the race itself, each player has the chance to decide which
of his horses he wants to enter and how he wants to place his bets. After
players have issued ‘race instructions’ to their jockeys, the race is run
and the winner collects both the prize money and any returns due from
bets placed. At the start of the game each player has £10,000, and
throughout the game balances are presented so that you can keep track of
your fortunes. Play continues until someone reaches six figures, or until
only one player is left in credit.
1 REM toptrainer
2 DATA "Ant "."Bee ","Cola","Dash",“Emu ",
'Fox ","Gas ”,"Harp","Ibex",“Jinn","Kay ","Li
na", "Mack", "Nixy”, "01ly” ,"Pug "
5 RANDOMIZE
10 GO SUB 3000
11 INK 0
12 DIM h*(16,d) : DIM h<16): DIM -F<16): DIM
p ( 16)
Id DIM a*(3,5): DIM a<8): DIM v(2,16): DIM
w (2,16)
16 DIM t (16) : DIM r(16) : DIM s(16): DIM o(l
6): DIM q ( d , 16)
13 DIM b(3): DIM d(3)
20 FOR i=1 TO 16
22 READ h*(i)
25 LET h <i)=INT <RND*10+1)
26 LET o(i)=-l
23 LET i ( i)=0
29 NEXT l
30 DATA 3,3,3,10,3,17,3,2d
31 DATA 3,2d,13,2d,18,2d,13,17
32 DATA 13,10,13,3,13,3,3,3
35 FOP i=1 TO 12: READ w(1,i),w(2,i): NEXT
116 Top Trainer
40 FOR i=i TO 12
42 LET v<1,i)=6-<4*< < i-1)/4-INT <<i-l)/4)J)
44 LET v(2,i)=12-INT (Ci-l)/4)
45 NEXT i
100 FAPER l: BORDER 1: CLS
105 INPUT "How many players? (1-8) 11 ; n
10? IF n< 1 OR r. >8 THEN GO TO 100
110 FOR i=l TO n
120 PRINT AT 21,0; "Name o-f Flayer ” ; i ;
125 INPUT ”;e*
126 IF LEM e$>5 THEN PRINT AT 21,18;“Max 5
letters";: GO TO 125
128 LET s.$(i)=e$: LET a(i) =10000
130 NEXT i
135 BORDER 2
140 INK 6: CLS : PRINT "
141 INK 7: PRINT AT 2,4;"Y
00 each."
142 PRINT
144 PRINT
146 PRINT
148 PRINT
"Each o-f you is
11 o-f horses which
"sel1, train up,
TOP TRAINER"
start with £100
owner/trainer
>u can buy, "
id enter -for"
150 PRINT
3"
152 PRINT
154 PRINT
156 PRINT
AT 8,4; "You make money -from winnin
"races and also by betting on"
"horses -yours or someone else’s."
AT 12,4;"Horses improve when they
158 PRINT
160 PRINT
162 PRINT
164 PRINT
"well but lose value when they 11
"don’t. It costs £500 to enter a"
"horse -for the race."
AT 17,4;"If you go bankrupt, you 1
166 PRINT "the chance to train, run or bet"
168 PRINT "on horses."
170 GO SUB 9920
200 BORDER 4: PAPER 6: CLS : INK 2: LET m=l:
LET w3=0
201 FOR i=2 TO 30 STEP 7
205 FOR j=l TO 21
210 PRINT AT j,i;" ";
215 NEXT j: NEXT i
220 FOR i=1 TO 21 STEP 5
225 FOR j =2 TO 30
Top Trainer 117
230 PRINT AT i , j ; "5
235 NEXT j: NEXT i
240 PRINT AT 11,10;" "5
250 FOR j =7 TO 15
255 PRINT AT j ,165 " “; : NEXT j
256 FOR i =1 TO r>: LET p(i)=l
257 LET line=0: LET col=0: IF i>4 THEN LET
1ine=l: LET coI=-4
258 PRINT AT w(1,p ( i ) )+1ine,w<2,p ( i ) )+1+ coi;
CHR$ (48+i)
259 NEXT i
260 INK 2
262 PRINT AT 2,3;"STARTS CHANCE 1SALE1 TRAIN
265 PRINT AT 7,3;"TRAIN ”;: INK 1: PRINT "E
ANK BALANCE£";: INK 2: PRINT " ISALE1"
270 PRINT AT 12,3;"CHANCE"
272 PRINT AT 12,24; ”CHANCE"
275 PRINT AT 17,3;"1SALE1 TRAIN CHANCE 1SAL
El"
280 FOR j=l TO n
285 PRINT AT 7+j,16;"
290 PRINT AT 7+j,10;j;a*(j)5
291 IF a(j ) <0 THEN PRINT "";
292 PRINT AT 7+j,16;a(j);"";
295 NEXT j
300 INK 0: PRINT AT 0,0; a$ (rn ) ; " ’ s go..."
310 LET thro=INT <RND*6+1)
315 GO SUB 9500
320 PRINT AT 0,15;thro
330 GO SUB 9500
335 LET line=0: LET col=0: IF m>4 THEN LET
1ihe=l: LET col=-4
336 PRINT AT w(l,p(m))+1ine,w(2,p(m!)+m+col;
337 LET x=p(m)+thro
340 IF x>12 THEN LET x=x-12
345 LET p (m ) =>c
350 LET 1ine=0: LET col=0: IF ifl>4 THEN LET
1ine=1: LET col=-4
352 PRINT AT w (1, p (m) )+1 ine, w (2,p (tn) l+m+coli
CHR$ (48+m!
355 GO SUB 9000
358 IF x=l THEN GO TO 450
118 Top Trainer
360 IF x=2 OR x=6 OR x=8 OR x=ll THEN GO TO
6000
362 IF x=3 OR x=5 OR x=7 OR x=10 THEN GO TO
7000
365 IF x=4 OR x=9 OR x=12 THEN GO TO 8000
375 GO SUB 9900
380 GO SUB 9000
395 LET m=m +1
397 IF m >n THEN LET m=l
400 GO TO 280
450 PAPER 0: BORDER 3: CLS : INK 6
452 PRINT "Someone landed on START, so it’s”
455 PRINT : PRINT "time -for a race...."
460 GO SUB 9500
470 LET r=0
550 FOR i=1 TO n
557 FOR j=l TO 16
560 IF oljlOi THEN GO TO 575
562 CLS : PRINT AT l,0;a«(iJ
563 PRINT AT 3,0;h$(j>5" Cost £"5h(j)#500: G
O SUB 5400
564 PRINT AT 7,0;"Will ";h$(j);" race today?
565 LET y$=INKEY*: IF y$="" THEN GO TO 565
570 IF y*='*y" THEN LET a(i)=a(i)-500: IF a(
i)<0 THEN LET a(i)=a(i)+500: GO SUB 9600: GO
TO 585
572 IF y$="y« THEN LET s(j)=l: LET r=r+l: L
ET x = I NT < h (j ) +-F (j ) / 2) : GO SUB 5000
575 NEXT j
585 NEXT i
599 PAPER 4: BORDER 3: CLS : LET z=0: LET a=
0: LET rr=0
600 GO SUB 4000
605 LET rx = 1
610 LET m=INT <RND#16+1): IF w3>400 THEN GO
TO 885
615 IF s(m)=0 OR s(m)=5 THEN LET w3=w3+l: G
O TO 610
630 LET rr = rr + 1: LET s(m)=5
635 FRINT AT v(1,rr!,v(2,rr)iCHR$ (64+m)
636 LET z = z + h !m) +-f (m)
637 LET p(m)=rr
640 IF r<)rr THEN GO TO 610
Top Trainer 119
650 FOR j=l TO 16
655 IF s<j)<>5 THEN GO TO 66 2
658 LET h9=h (j )+-f < j ) : IF h9< = l THEN LET h9=
1
660 INK 6: PRINT AT 0,0 ;"ODDS”: PRINT AT rx,
0 ; ""; h* < j , i TO 1);"=";INT (z/h9);” "
661 LET rx=rx+l
662 NEXT j
664 FOR i=1 TO n: INK 0
665 IF a(i)< =0 THEN PRINT AT 20,0!a*(i) ; ” h
as no cash to bet!“: GO SUB 9500: GO TO 630
666 PRINT AT 13,0;a$(i)i” Bet?(Y/N)"
66? FOR k = l TO 10: LET y*=INKEY*: NEXT k
668 LET y*=INKEY*: IF y*=““ THEN GO TO 668
620 IF y*="n" THEN GO TO 690
672 PRINT "Horse’s letter? ";
673 FOR k = l TO 10: LET y*=INKEY*: NEXT k
674 LET y*=INKEY*: IF y*="" THEN GO TO 674
675 PRINT y*
676 FOR j=l TO 16
678 IF y*=h*(j,l TO 1) THEN LET b(h)=j
679 NEXT j
680 INPUT “How much money? ";y*: LET a=VAL y
*
683 IF a(i)-a<0 THEN PRINT "Not enough none
y in the kitty!": GO SUB 9500: GO TO 697
684 LET d <l)=a: LET a(i)=a<i)-a
690 PRINT AT 13,0;”
692 PRINT AT 14,0!"
695 PRINT AT 20,0;"
696 PRINT AT 21,0;"
697 NEXT i
693 GO SUB 9000
699 GO SUB 4300
700 FOR j=l TO 16
705 LET j a=p(j )
710 IF s(j )< >5 THEN GO TO 850
720 LET r(j a)=1: IF v(2,ja! >24 THEN LET r(j
a) =2
730 IF v(1,j a) >16 THEN LET r(ja)=3
740 IF r(j a)=3 AND v(2,ja)<10 THEN LET r<ja
) =4
120 Top Trainer
750 LET m = INT <RND*5>
760 IF m >2 THEN GO TO 780
765 IF m=2 AND q<r<ja),ja)>0 THEN LET q(r(j
a) , ja)=q(r(ja) ,ja)-l: GO TO 780
770 60 TO 850
780 GO SUE 1000+100*r(ja)
785 IF m-i THEN GO TO 350
800 PRINT AT v(i,ja), v {2, j a );" "
810 LET v(l,ja)=v(l,ja)+y
815 LET v(2,ja)=v(2,ja)+x
820 PRINT AT v(1,ja),v(2,ja)jh$(j,1 TO 1)
840 IF r (j a)=4 AND v(2,ja)<5 THEN GO TO 860
850 NEXT j
855 GO TO 700
860 GO SUB 9000
861 PRINT AT 0,0; 11 The WINNER is " 5h*<j): LET
e$=h$(j)
862 LET r=rr*1000
863 PRINT AT 1,0;a*<o<j)); " gets £";r;" priz
e”: LET a < o(j ) )=a(o(j ) )+r
865 GO SUB 9900
867 GO SUB 9000
868 LET z = INT < z / ( h ( j ) +-f (j ) ) ) : IF z<l THEN
LET z=l
869 GO SUB 2000: PRINT AT 2,0;e*;" won at od
ds o-f ";z; “ to 1"
870 FOR k = 1 TO n
872 IF b < k ) = j THEN LET a<k)=a<k>+b(k)*z+b(k
): PRINT a$(k ); a ’5 bet wins!"
876 NEXT k
879 GO SUB 9900
880 LET r = 1: LET rr = 1
381 FOR j=l TO 16: LET r(j)=l: LET s(j)=0: L
ET p (j ) =0
884 NEXT j
885 CLS
886 GO TO 200
1100 LET x=l
1110 FOR y=l TO -1 STEP -1: IF SCREEN* (v(l,j
a)+y,v<2,ja)+x)=" " THEN RETURN
1120 NEXT y
1130 LET m=l: RETURN
1200 LET y=1
1210 FOR x=-l TO l: IF SCREEN* (v(1,ja)+y,v(2
Top Trainer 121
,j a)+ x ) = " " THEN RETURN
1220 NEXT x
1230 LET m=l: RETURN
1300 LET x=-l
1310 FOR y = l TO -1 STEF -1: IF SCREENS (v(l,j
a) + y,v(2,ja)+x)=“ “ THEN RETURN
1320 NEXT y
1330 LET m=i: RETURN
1400 GO TO 1300
2000 GO SUE 9000
2005 PRINT AT 0,0;"Form changes as a result o
2006 LET rx=0
2007 FOR j=l TO 11
2010 FOR i=1 TO 3
2020 IF SCREENS (15+i , 2 +j ) =" !l THEN GO TO 20
50
2025 LET x=CODE (SCREENS (15+i,2+j))-64
2027 LET r x = r x + 1
2030 PRINT r x ; ” 11 ; hS <x ) 5
2032 IF j>=9 THEN PRINT " Will lose points";
2033 PRINT
2034 LET -f <x)=-f (x)+INT <<13-j)*.75)
2050 NEXT i: NEXT j
2052 PRINT
2055 PRINT ” I-f any horse hasn’t been given a"
2060 PRINT "mention then it has lost 4 -form"
2065 PRINT "points. It should have stayed at"
2070 PRINT "home!"
2075 GO SUB 9500: GO SUB 9900: CLS
2076 PRINT "Horse Owner £ before £ now”
2080 FOR i=1 TO 16: IF s(i)<>5 THEN GO TO 21
00
2085 LET i (i) =i (i)-4
2092 PRINT AT i,0;hS(i>;TAB <7);aS(o(i>>
2095 PRINT AT i,14;t(i): PRINT AT i,22;h(i)*5
00 + -f ( i )*250
2100 NEXT i
2110 RETURN
3000 CLS : FOR j=l TO 30
3010 INK <RND*3)
3015 PAPER <RNB#8)
3020 PRINT AT RND#20,RND*215"TOP TRAINER"
3030 NEXT j: RETURN
122 Top Trainer
4000 PRINT AT 2,8:"TTTTTTTTTTTTTTTTTTT"
4010 PRINT AT 7,3;"TTTTTTTTTTTTTTT"
4020 PRINT AT 15,0; "TTTTTTTTTTTTTTTTTTTTTTTT"
4030 PRINT AT 19,0; "TTTTTTTTTTTTTTTTTTTTTTTTT
TTT "
4040 FOR i =2 TO 19: PRINT AT i,27; ,, T' 1 : NEXT i
4050 FOR i=7 TO 15: PRINT AT i,23;"T": NEXT i
4060 FOR i=3 TO 6: PRINT AT i,14;" ": NEXT i
4070 PRINT AT 15,4; "O": PRINT AT 15, 13;'* "
4090 RETURN
4300 FOR i=3 TO 6: PRINT AT i,14;“ “: NEXT i
4340 FOR i = 1 TO 16: LET t(i)=INT ( h ( i ) *500+ -f (
i)*250): NEXT i
4350 RETURN
5000 IF x<=0 THEN PRINT 'This horse is badly
o-f-f -form" : GO TO 5100
5005 PRINT "Points available -for race..." ;x
5010 FOR m=1 TO 4
5020 IF m=4 THEN PRINT "The 4th quarter must
be "}x: LET q(m,j)=x: GO TO 5100
5025 PRINT "Orders -for quarter no. " ; m; " <0-9)
5027 FOR k=l TO 10: LET y®= INKEYS: NEXT k
5030 LET y$=INKEY*: IF y*="" THEN GO TO 5030
5032 IF CODE (y$!<43 OR CODE (y*>>57 THEN GO
TO 5030
5035 LET b=VAL y*
5040 LET x = x-b
5050 IF x<0 THEN LET x=0: LET b=0
5055 PRINT b
5060 LET q<m,j)=b
5070 NEXT m
5100 GO SUB 9900
5105 FOR m= 1 TO 4: LET q<m,j)=0: NEXT rn: RETU
RN
5400 PRINT "Current value £ " ; -f (j Hf250+ h (j ) *50
0
5405 IF (-f (j )*250+h < j ) *500><=0 THEN PRINT "W
hich is bad news !!"
5410 RETURN
6000 LET x = INT CRND*6+1)
6010 LET x=-250*x
6020 IF RND >.5 THEN LET x = -x
6030 LET a < m)=a(m)+ x
Top Trainer 123
6040 GO TO 375
7000 PRINT AT 0,0;"Does ";a$(m)," wish to sel
1 a horse?"
7010 GO SUE 9800
7020 IF y$=“n” THEN GO TO 7050
7025 GO SUB 9000
7026 FOR i=1 TO 16
7027 IF o(i)< >m THEN GO TO 7045
7028 PRINT AT 0,0;“Do you wish to sell ";h$(i
): GO SUB 9800
7030 IF y$=“n" THEN GO TO 7040
7031 GO SUB 9000: LET bb=INT (h(i)*500+-f(i)*2
50): IF bb<0 THEN LET bb=0
7032 PRINT AT 0,0;h*<i);" cost £“;h<i)*500;"
Now worth £ *;bb
7033 INPUT "Buyer No. < i -f none type 0) " ;b
7035 IF b=0 THEN GO SUB 9000: PRINT AT 0,0;"
OK, I’ll take it -for £" ;bb: GO SUB 9500
7036 IF b=0 THEN LET o(i)=-l: LET a(m)=a(m>+
bb: GO TO 7040
7037 IF b >ri THEN GO TO 7033
7038 INPUT "At what price £“;a
7039 LET o<i)=b: LET a(m)=a(m)+a: LET a(b)=a(
b) -a
7040 GO SUB 9000
7045 NEXT i
7050 LET o-f-f er = INT <RND*15+1)
7060 IF o (o-f-fer) < >-l THEN GO TO 7050
7070 GO SUE 9000
7080 PRINT AT 0,0;"I’ll sell you " ; h* ( o-f -f er ) ;
” tor £"; h (o-f-fer ) *500
7100 GO SUB 9800
7105 GO SUB 9000
7110 IF ySO'y” THEN GO TO 375
7120 PRINT AT 0,0;"OK - Done"
7125 LET o (o-f-fer ) =m: LET a (m ) =a (rn) - h (o-f-f er ) *5
00: GO TO 375
8000 FOR i=1 TO 16
8010 IF o ( i)< >m THEN GO TO 8100
8012 IF a (m)<0 THEN PRINT AT 0,0;" You’re BA
NKRUPT": GO SUB 9500: GO SUB 9000: GO TO 8100
8015 PRINT AT 0,0;"How much money to train ";
h$ ( i )
3020 INPUT “£ ";a
124 Top Trainer
8030 IF a(m)-a<0 THEN FRINT AT 0,0;"Not enou
gh cash in the kitty!": GO SUB 9500: GO TO 80
50
8034 LET x=INT <RND*5+2>
8036 LET b= JNT : ;<*a/3000) : IF b>5 THEN LET b
= 5
8040 LE T +:U=f(i)+b: LET a<m)-a(m) -a
8050 GO SUB 9000
8100 NEXT i
8200 GO TO 375
9000 PRINT AT 0,0;"
9010 RETURN
9500 PAUSE 55: RETURN
9800 LET y$=INKEY*
9805 IF >'<$="" THEN GO TO 9800
9810 RETURN
9900 PRINT AT 0,0;" Press any key to conti
9910 GO TO 9800
9920 PRINT AT 21,0;"Press any
9925 GO TO 9800
9960 PRINT
9962 PRINT "cashless.
9966 RETURN
key "
125
Biorhythms
The theory of biorhythms assumes that the physical, emotional and
intellectual capacities of an individual are subject to regular cycles of 23,
28 and 33 days respectively. During each cycle the curve will increase to a
high point, then sink below the median value, tracing out a sine wave.
These cycles commence at birth, and progress at different rates,
producing crossovers, considered to signify ‘critical’ periods (days when
the individual is more prone to accident or error of judgment) when the
crossover is one involving the low values of the curves. Especially crucial
are those days when all three curves meet. Positive high values at
crossovers have a good effect.
The program calculates the cycles from the day of birth, and displays a
graph of the curves for a period of one month from the chosen date.
10 BORDER 1: PAPER 1: CLS
20 60 SUB 9000
100 LET total=0: LET total2=0: PRINT INK 5;
AT 0, 10; "BIORHYTHMS": PRINT : PRINT : PRINT
110 PAPER 0: INK 5: PRINT TAB (3);"BIRTH YEA
R: " : PRINT : PRINT TAB <3);"BIRTH MONTH:
” : PRINT : PRINT TAB <3);"EIRTH DAY:
115 PRINT : PRINT
120 PAPER 0: INK 5: PRINT TAB <3);“YEAR REQU
IRED: ": PRINT : PRINT TAB (3);"MONTH REQUIRE
D: " : PRINT : PRINT TAB <3);"DAY REQUIRED
130 PRINT INK 5; FLASH 1;AT 21,3;"Enter det
ails now (numeric)"
140 PRINT PAPER 0; INK 7; FLASH 1;AT 4,3;"B
IRTH YEAR:": INPUT y: PRINT AT 4,20;y
150 PRINT PAPER 0; INK 7; FLASH 0;AT 4,3;"B
IRTH YEAR:"
160 PRINT PAPER 0; INK 7; FLASH 1;AT 6,3;"B
IRTH MONTH:": INPUT m: PRINT AT 6,20;m
170 PRINT PAPER 0; INK 7; FLASH 0;AT 6,3;"B
IRTH MONTH:"
180 PRINT PAPER 0; INK 7; FLASH 1;AT 8,3;"B
IRTH cay:": INPUT d: PRINT AT 8,205d
190 PRINT PAPER 0; INK 7; FLASH 0;AT 8,35 "B
IRTH DAY:"
126 Biorhythms
200 PRINT PAPER 0; INK 75 FLASH 1;AT 11,3;"
YEAR REQUIRED:”: INPUT yl: PRINT AT 11,205/1
210 PRINT PAPER 0; INK 75 FLASH 05 AT 11,35"
YEAR REQUIRED:"
220 PRINT PAPER 05 INK 75 FLASH 15 AT 13,35"
MONTH REQUIRED:”: INPUT ml: PRINT AT 13,205ml
230 PRINT PAPER 05 INK 75 FLASH 05AT 13,35"
MONTH REQUIRED: "
240 PRINT PAPER 0; INK 7; FLASH 1 5 AT 15,35”
DAY REQUIRED:”: INPUT di: PRINT AT 15,205dl
250 PRINT PAPER 05 INK 7; FLASH 05 AT 15,35”
DAY REQUIRED:"
270 LET tote. i = <y-l) *365.25
280 LET tot a 12=(y1-1 ) *365.25
300 IF m>1 THEN LET total=tota1+m<m-1)
305 IF mill THEN LET tote 12=tota12+m(mi-1)
310 IF m-1>1 AND y/4=INT <y/4) THEN LET tot
a 1=tota1 + 1
315 IF ml-1>1 AND yl/4=INT (yl/4) THEN LET
tota!2=total2+l
320 LET total=total+d: LET tota12=tota12+d1
330 LET day=total 2-total
335 IF rn 1 =m AND dl=d THEN GO SUB 5000
35.0 PAPER 7: INK 2: CLS
360 GO SUB 1000
37.0 LET p=day- (INT (day/23)*23)
380 LET e=day-fINT <day/28)*28)
390 LET i=day-(INT tday/331*331
490 PRINT Flash 1;at 0,0;"Physical cycle”
500 FOR r,=p*c TO <p*c)+255
510 PLOT n-<p*c1,83.5+33.5*SIN <n/<11.5*PI))
520 NEXT n
525 PRINT FLASH 1 ; AT 0,0; " Emot i or.a 1 cycle"
530 FOR r.=e*c TO <e*c 1+255
540 PLOT' n-(e*c),83.5+83.5*SIN <n/<14*PI)l
550 NEXT n
555 PRINT FLASH 1;AT 0,0;”Inte11ectua1 cycl
e “
560 FOR n=i*c TO <i*c)+255
570 PLOT n-<i*c1,33.5+33.5*SIN ( n/<16.5*PI)1
530 NEXT n
590 PRINT PAPER 0; INK 5;AT 0,0;"Biorhythrn
■for
595 PAUSE 100
Biorhythms 127
600 PRINT PAPER 7s INK 2; AT 20,3; "Press a k
ey to restart"
610 IF INKEY*="" THEN GO TO 610
620 GO TO 10
1000 PRINT PAPER 0;"
1010 LET c=9.369565217
1015 PRINT PAFEP 0; INK 5;AT 0,0;"DIVISIONS=
DAYS": PAUSE 100
1020 FOR x=i TO 25
1040 PLOT c*x,0: DRAW 0,167
1060 NEXT x
1080 PRINT PAPER 0; INK 5;AT 0, 185d15 "/"}ml}
1100 RETURN
5000 LET a=.2: LET b=. 4
5010 BEEP a,0: BEEP a,0: BEEP b,2: BEEF b,0:
BEEP b,5: BEEP b,4: PAUSE 10: BEEF a,0: BEEP
a,0: BEEP b,2: BEEP b,0: BEEP b.7: BEEP b,5:
PAUSE 10: BEEP a,0: BEEP a,0: BEEP b,12: BEEP
b,9: BEEP b,5: BEEP b,4: BEEP b,2: PAUSE 10:
BEEP a,10: BEEP a,10: BEEP b,9: BEEP b,5: BE
EP b,7: BEEP b,5
5020 RETURN
9000 RESTORE : DIM m< i 1)
9010 FOR x=l TO 11
9020 READ r, : LET m<x)=n
9030 NEXT x
9040 DATA 31,59,90,120,151,131,212,243,273,30
4,334
9999 RETURN
128
Alien
The alien ship passes overhead, razing the ground below with its power
beam, and dropping swarms of deadly Veepods. Moving swiftly across
your territory you fire your missiles as long as the power holds out. When
a recharge is necessary, your base changes shape, and you must ride out
the dangers undefended. As an added difficulty, you can choose to have
an invisible alien, only identifiable when it fires, and providing minimal
guidance for your missile positioning.
1 REM @ P.STANLEY
3 LET hs=0
10 BORDER 0: PAPER 0: INK 6: CLS
12 GO SUB 1000
15 GO SUB 2000
18 CLS
19 PAUSE 50
20 LET x=0: LET y=l: LET z = 14: LET 5=0: LET
c=0
25 PRINT AT 0,20;"HI-SCORE:";hs
30 GO SUB 71
35 IF RND >.97 THEN GO SUB 200
40 IF RNDC.05 THEN GO SUB 78
60 IF c=3 THEN GO TO 305
61 LET z = z +(2 AND IN 65278=251 AND z<26)-(2
AND IN 65278=253 AND z>0)
62 PRINT AT 21,z; INK 35" C "
63 IF IN 32766=251 THEN GO SUB 100
63 PRINT AT 0, 25 "SCORE: " i s
70 GO TO 30
71 LET x = x+ 1: PRINT AT y,x;" "5q$
72 IF x=29 THEN PRINT AT y.xj" ": LET x=
0: LET y=y+1
73 IF y=21 THEN LET y=l: LET c=c+l
74 IF c=3 THEN GO TO 305
75 RETURN
78 PLOT 8*x+12,(21-y)*8: DRAW 0,-((21-y)*8)
79 BEEP .05,-20: BEEP .05,-15
80 IF x=z+l THEN PLOT OVER 1;8*x+12,(21-y
)*3: DRAW OVER 150,-((21-y)*3): GO TO 300
Alien 129
82 BEEP .05,-20: BEEP .05,-15
83 OVER l: PLOT 3*x + 12, ( 21 -y ) *8: DRAW 0,-(<
21-y)*8): OVER 0
84 RETURN
100 FOR a=20 TO 1 STEP -1
110 PRINT AT a,z + 2; "6"
111 IF RND<.04 THEN GO SUB 78
112 LET z = z +(2 AND IN 65278=251 AND z<26)-<2
AND IN 65278=253 AND z>0>: PRINT AT 21,z; IN
120 GO SUB 71
150 BEEP .001,a+20
160 IF a=y THEN IF x=z+l OR x=z THEN LET s
= s +INT (100/y)+10: PRINT AT y,x;" DD" : BEEP .
2,0: BEEP .2,12: RETURN
168 PRINT AT a,z; INK 5;"
170 NEXT a: RETURN
200 LET f=x: FOR a=y TO 21
210 PRINT AT a, -f ; INK 4 ; “ FFFF "
220 LET z = z +(2 AND IN 65278= 251 AND z<26)-(2
AND IN 65278=253 AND z>0): PRINT AT 21,zi IN
K 2; " £ “
230 IF a=21 THEN IF -f = z OR -f=z-l OR f = z + l O
R -? = z +2 THEN GO TO 300
240 GO SUB 71
242 PRINT AT a, i 5"
245 NEXT a
250 RETURN
300 PRINT AT 21 , z + 2 ; ■
301 FOR a=-15 TO 15 STEP 3
302 PLOT z*8+20,2
303 DRAW a,RND*16
304 NEXT a
305 FOR a=40 TO -40 STEP -2
306 BEEP .005,a: NEXT a
307 IF s > hs THEN LET hs=s
310 FOR a=-40 TO 40
320 BEEP .005,a
330 NEXT a
332 INPUT AT 0,0;"Do you want to see the ali
er.?” , v*
333 IF v*(l)="y" THEN LET g 9="AB": GO TO 33
6
334 IF v*(l)="n" THEN LET g*= ** " : GO TO 33
130 Alien
6
335 GO TO 332
336 FOR -f = l TO 100: NEXT F
340 PRINT AT 5,li"Press any key to play agai
350 IF INKEY$<>"" THEN CLS : FOR x=0 TO 200
: NEXT x: GO TO 20
360 GO TO 350
1000 FOR x = USR "a" TO (USR "g"+7): READ y: PO
KE x,y: NEXT x
1010 DATA 0,0,60,255. BIN 11101010,63,15,3,0,0
,60,255,BIN 01010111,252,BIN 11110000,192,8,8
,8,BIN 01011101,119,BIN 01100011,BIN 01011101
1020 DATA 1,68,136,16,160,0,4,84
1025 DATA 129,255,BIN 10100101,36,60,60,126,2
55
1030 DATA 0,130,198,BIN 01101100,124,56,16,16
1035 DATA 8,8,8,8,8,28,0,0
1040 RETURN
2000 PLOT 0,95: DRAW 5,0: DRAW 8,28: DRAW 26,
0: DRAW 0,3: DRAW -25,0: DRAW 11,37: DRAW 27,
-67: DRAW 12,0: DRAW 0,67: DRAW 3,0: DRAW 0,-
64: DRAW 35,0: DRAW 0,-3: DRAW 25,0: DRAW 0,3
: DRAW 5,0: DRAW 0,61
2020 DRAW -5,0: DRAW 0,3: DRAW 15,0: DRAW 0, -
3: DRAW 0,-61: DRAW 5,0: DRAW 0,-3: DRAW 18,0
: DRAW 0,67: DRAW 30,0: DRAW 0,-3: DRAW -26,0
: DRAW 0,-25: DRAW 15,0: DRAW 0,-3: DRAW -15,
0: DRAW 0,-33: DRAW 30,0: DRAW 0,-3: DRAW 12,
0: DRAW 0,67: DRAW 37,-67: DRAW 0,67
2030 PRINT AT 12,0; INK 3;" LEFT.
. . 2 RIGHT. X
FIRE. M
YOU CAN ONLY FIRE IF YO
UR BASE IS AND NOT .
2034 PRINT : PRINT "Press ’I’ For an invisibl
e alienor ’V’ For a visible one."
2036 IF INKEY$=”i" THEN LET g*= " ”: GO TO 2
040
2037 IF INKEY$= 11 v” THEN LET gGO TO 2
040
2038 GO TO 2036
2040 PAUSE 0
2050 RETURN
131
Galaxians
You are the commander of the sole surviving laser base on Earth. The
fleets of Alien spacecraft are moving in for the final onslaught. Some
swoop down, lasers blasting; others sit at the top of the screen launching
unstoppable bombs which must be dodged. If you wipe out one fleet,
another will appear in its place. In short, you haven’t a chance. But make
sure you take as many of the nasties with you as you can before you go.
10 BORDER 0: PAPER 0: INK 7: CLS
15 LET hs=0
18 GO SUB 8000
20 GO SUB 9000
21 LET x = 15: LET sc=0: LET 1=3: LET m=RND*l
8: LET g = 3: LET h=INT <RND*13)
30 LET a$=" AB AB AB AB AB AB ": LET b$=" C
D CD CD CD CD CD ": LET c*=”
35 LET d$=" EF EF "
40 LET dir = l: LET ;y=0
60 LET hit=0
80 PRINT AT 0,17;"HIGH-SCORE:hs
100 PRINT AT 2, y; INK 5;a*
110 BEEP .001,30: BEEP .001,30: BEEP .001,30
115 BEEP .001,30: BEEP .001,30: BEEP .001,30
120 PRINT AT 2, y; INK 5;b*
130 BEEP .001,40: BEEP .001,40: BEEP .001,40
140 LET x=x+2*<IN 65278=251 AND x<25)-2*(IN
65278=253 AND x>l)
150 PRINT AT 21, x;" A >6
155 IF IN 32766=251 THEN GO SUB 1000: PRINT
at 0,0; "SCORE: sc
160 LET y=y + dir
170 IF y=0 OR y=13 THEN LET dir=-dir
175 PRINT AT 1,m;"
180 LET 1=1+1: LET m=m+RND*4-RND#4
135 IF 1=21 THEN LET 1=3: LET d*=" EF EF "
186 IF m >25 THEN LET m=12
137 IF m<0 THEN LET rn=12
188 PRINT INK 4;AT l,m;d$
190 PRINT AT g,h;“
132 Galaxians
200 LET g=g+3: PRINT AT g,h "LM" : IF g=21 TH
EN LET g=3: PRINT AT 21,h.. LET hl = h: LE
T h=INT (RND*17)+l: IF hl=x+3 OR hl=x+2 OR hi
= x + l THEN GO TO 4000
210 IF RND >.8 THEN IF d*<>" " THEN G
0 SUB 3000
300 GO TO 100
1000 IF POINT <x*8+23,<21-1)*8+4)=1 THEN GO
TO 1030
1005 IF POINT (x*8+23,156)=1 THEN LET hit=l
1010 PLOT x-8-3 + 23,8: DRAW 0,146
1020 BEEP .02,10
1030 PLOT OVER l;x*8+23,8: DRAW OVER 150,14
6
1040 IF hit=1 THEN LET a*(x+2-y TO x+4-y)="
*: LET b*5<x+2-y TO x + 4-y)=“ " : LET sc = sc +
10: PRINT AT 2, x + 1 ; "HHH" : FOR -f=0 TO 15 STEP
5: BEEP . 01 , f : NEXT -f : PRINT AT 2,x + l;“
1050 LET hit=0
1055 IF a*=c* THEN GO TO 2000
1060 RETURN
1080 IF g=1 THEN IF h=x+l OR h=x+2 THEN RET
URN
1100 PLOT x*8+23,8: DRAW 0,<21-l)*8-8
1110 BEEP .02,10
1120 PLOT OVER 1;x*8+23,8: DRAW OVER l;0,(2
1-1 ) 8 - 8-8
1130 LET d$(x+2-m TO x + 4-m)='* " : LET sc = sc +
20: PRINT AT 1,x +1j " HHH ": FOR T=0 TO 15 STEP
5: BEEP ,01,-f: NEXT -f : PRINT AT l,x+li"
1140 RETURN
2000 FOR +=0 TO 15
2010 PRINT AT IJK"
2020 IF -f =0 OR -f =3 OR -f =6 OR -f=9 OR -f = 12 OR -f
=15 THEN FOR i=6 TO 2 STEP -2: PRINT OVER 1
; AT i , -f + 1 ; INK 5 BEEP .01, i: PRINT OVE
R 1 i AT i , -f +1; INK 5NEXT i: PRINT INK
5J AT 2,f+ 1; “AB"
2040 NEXT -f
2042 FOR -f = 14 TO 26 STEP 2
2044 BEEP .01,-4
2046 PRINT AT 7,-f;" UK"
2047 NEXT -f
2050 PRINT AT 7,28;“
Galaxians 133
206.0 GO TO 30
3000 IF d*<2 )<>"£ u THEN GO TO 3080
3010 INK 3: PLOT tn*8+16, (21-1 )*8-l
3015 DRAW 0,9-<21-l)*8
3020 FOR f =38 TO 42: BEEP .001,f: NEXT f
3030 PLOT OVER 1;m*8+16,<21-1)*8-1: DRAW OV
ER 150,9-<21-1>#3
3040 IF POINT (m*8+16,4) THEN GO TO 4000
3050 INK 7: RETURN
3080 IF g =1 AND h=x+2 OR h = x + l THEN RETURN
3100 INK 3: PLOT m*3+36,(21-1>*3-1: DRAW 0,9-
< 21 - 1 ) *8
3120 FOR +=38 TO 42: BEEP .001,+: NEXT +
3130 PLOT OVER 15m*8+36, <21- 1)*8-1: DRAW OV
ER 150,9-<21-1>*8
3140 IF POINT <m*8+36,4) THEN GO TO 4000
3160 INK 7: RETURN
4000 FOR +=1 TO 15
4009 PRINT AT 21,x+2; INK RND*6+1 5 "HH"
4020 BEEP .05,-RND*30
4030 NEXT +
4035 PRINT AT 21,x+2;"
4040 IF sc > hs THEN LET hs = sc
4050 PRINT AT 10,8; FLASH 1;"G A M E OVER
”!AT 18,2;"PRESS ANY KEY TO PLAY AGAIN”
4060 IF INKEYtSO" " THEN CLS : INK 7: FOR + = 1
TO 100: NEXT +: GO TO 21
4070 GO TO 4060
8000 PRINT AT 0,6!"G A L A X I A N S"; OVER 1
; AT 0, 6; "_”
8010 PRINT ’"Fleet a+ter +leet, the invaders
■form arid wait to attack. Some of them dive dow
n to Earth firing lasers as they da."
8020 PRINT ’"The invaders in the formation
drop dangerous bombs to try and destroy your
laser base. Diving invaders are worth more po
ints. "
8030 PRINT ’"As soon as 1 fleet of invaders
have been destroyed their mother-ship will ar
range a new battle-line.”
8035 PRINT : PRINT "z = left x = right m =
fire "
8040 PRINT ’’ INVERSE 1;"PRESS ANY KEY TO STA
RT"
134 Galaxians
8050 PAUSE 0: CLS : RETURN
9000 FOR x = USR "a" TO USR * n *' +7: READ y: POKE
x,y: NEXT x
9010 DATA 34,35,36,62,15,7,2,14
9020 DATA 36,196,228,252,240,224,64,112
9030 DATA 2,3,7,63,39,39,34,3
9040 DATA 64,192,32,124,228,223,68,192
9050 DATA 128,BIN 10100110,242,123,61,47,39,3
9060 DATA 1,BIN 01100101,BIN 01001111,BIN 110
11110,BIN 10111100,244,196,192
9070 DATA 0,240,248,252,14,6,6,6
9073 DATA 145,82,0,3,192,0,74,145
9030 DATA 7,31,127,170,170,127,31,7
9090 DATA 255,255,255,170,170,255,255,255
9100 DATA 192,240,252,170,170,252,240,192
9110 DATA 18,19,18,28,4,2,1,1
9120 DATA 72,200,72,56,32,64,128,128
9300 DATA 1,31,63,127,225,193,192,192
9500 RETURN
135
Sheepdog Trials
There’s no getting away from it, sheep are dumb. The pen in the middle
of the screen is large enough for them all to be housed in comfort, but the
wretched creatures are demonstrating an unpalatable degree of reti¬
cence. Your trusty collie, Jim, is doing the best he can, but he requires a
firm handling from you and your cursor control keys. As in life, time is
running out, and this unusually difficult game will defeat you unless you
manage to get all the sheep into the pen before the last second ticks away.
If your best efforts are to no avail never fear... there’s always the slaugh¬
ter house!
1 REM by Robert Erskine -from an original i
dea by Tom Hayward
10 GO SUB 6000
20 GO SUE 5000
30 INPUT "How many players?";A
40 DIM p(A): DIM 5(4,2): LET DX=15: LET DY=
15: BORDER 4: PAPER 4: INK 4: CLS
45 RANDOMIZE : LET DD=1: LET RR=1: DIM R<2)
: LET R <i)=-l: LET R(2)=l
46 GO TO 65
50 CLS : FOR x=0 TO 21: PRINT AT x,0; INK 0
; "F "; AT x,31; INK 0;"£": NEXT X
55 FOR x=6 TO 9: PRINT INK 05 AT x,10;”A";A
T x,20i “: NEXT x
56 FOR x=ll TO 19: PRINT INK 0;AT 5,x;"G";
AT 10, x NEXT x
57 PRINT PAPER 4; INK 4;AT 10,15;"
53 PRINT INK 0;AT 5,10! "H "5 AT 5,20; "/";AT
10, 10; "J“ ; AT 10, 20;'•A'"
6.0 FOR x=0 TO 31: PRINT AT 0,x; INK 0; ,, _" ;A
T 21,xj INK 0; "G": NEXT x
61 RETURN
30 FOR t=l TO A: REM player loop
31 GO SUB 50
85 LET sc=0: LET S(l,l)=3: LET S(l,2)=15: L
ET S(2,1)=3: LET S(2,2)=16: LET S<3,1)=4: LET
S(3,2)=15: LET S(4,1)=4: LET S(4,2)=16
90 PRINT AT 0,0! INK 7; "PLAYER ”;t
136 Sheepdog Trials
95 GO TO 13.0
100 REM dogmove
105 IF INKEY*=”0" THEN GO TO 3000
110 LET I=CODE (INKEY*)-52
115 PRINT INK 4; PAPER 4;AT DX,DY;" "
120 IF 1=1 AND ATTR <DX,DY-1)=36 THEN LET
Y=DY-l: LET DD=2
130 IF 1=2 AND ATTR <DX+1,DY)=36 THEN LET
X=DX+1
140 IF 1=3 AND ATTR <DX-1,DY)=36 THEN LET
X=DX-1
150 IF 1=4 AND ATTR <DX,DY+1)=36 THEN LET
Y=DY+1: LET DD=1
160 IF DD=1 THEN PRINT PAPER 4; INK 0;AT
X,DY; "A"
170 IF DD=2 THEN PRINT PAPER 4; INK 0;AT
D
D
D
D
D
D
X,DY;" B“
175 RETURN
180 FOR z=l TO 4: REM sheeploop
190 LET SX=S< z , 1 ): LET SY=S(z,2): REM sheepm
195 GO SUB 100
200 IF RND >.75 THEN GO TO 230
210 IF RND >.5 THEN LET SX=S<z,1)+R<2): GO T
O 220
215 LET SX=S < z,1)+R(1)
220 IF RND >.5 THEN LET SY=S(z,2)+R<2) : GO T
O 230
225 LET SY=S(z,2)+R(1)
230 LET E=(ABS DX-S(z,1))/10: LET F=(ABS DY-
S < z,2) )/10: LET G=S(z,l)-DX: LET H=S(z,2)-DY
235 LET o=0: LET q=RND: IF q>E AND q>F THEN
LET o=l
240 IF G>0 AND o=l THEN LET SX=S<z,1)+1
250 IF H>0 AND o=l THEN LET SY=S(z,2)+1: LE
T RR= 1
260 IF G<0 AND o=l THEN LET SX=S(z,l)-l
270 IF H<0 AND o=l THEN LET SY=S(z,2)-1: LE
T RR = 2
280 PRINT AT S(z,l),S(z,2);“ "
290 IF ATTR (SX,SY)<>36 THEN GO TO 310
300 LET S(z,1)=SX: LET S(z,2)=SY
310 IF RR=1 THEN PRINT PAPER 4; INK 7;AT S
(z,1),S<z,2); “C H
Sheepdog Trials 137
320 IF RR=2 THEN PRINT PAPER INK 7;AT S
(2,1),3<z,2) 5 "D"
330 LET RR=INT <RND#2)+1
340 NEXT z
350 LET sc=sc+.l: PRINT PAPER 4; INK 7; AT 0,
21; "Score " ;150-sc; " ": IF sc = 150 THEN GO
TO 3000
360 GO TO 130
370 NEXT t
2000 BORDER l: PAPER 1: INK 1: CLS
2005 INK 7: PRINT AT 0,12RESULTS": PRINT :
PRINT
2010 FOR x=l TO A
2020 PRINT TAB 9i"Player " ; x ; " : *;p ( x)
2030 NEXT x
2040 PRINT : PRINT TAB 4;"PRESS ANY KEY TO RE
START"
2050 IF INKEY*="" THEN GO TO 2050
2060 GO TO 10
3000 PRINT INK 0; AT 10,15;'*_"
3002 LET p(t)=150-sc
3005 LET c heck=0
3010 FOR x=l TO 4
3020 IF S(x,1)>5 AND S(x,l)<10 AND S(x,2)>10
AND S(x,2)< 20 THEN LET check=check+1
3030 NEXT x
3040 IF check< 4 THEN PRINT INK 7;AT 18,2; "Y
du Tailed to pen the sheep"SAT 19,2;"Your sco
re is zero": LET P(t)=0: LET check=0: GO SUB
4000
3050 IF check=4 THEN PRINT INK 7;AT 18,2;"Y
our score was ";P(t): LET check=0: GO SUB 400
0
3060 GO TO 370
4000 FOR q=1 TO 400: NEXT q: RETURN
5000 BORDER l: PAPER 1: INK 7: CLS
5010 PRINT AT 1,8;"SHEEPDOG TRIALS";AT 3,5;"8
Robert Erskine 1933“
5020 PRINT AT 5,0; "The object o-f the game is
to "."herd all -four sheep into the penwithin
a -fixed time limit by ", "moving the dog using
the arrow ","keys. When he sheep have been “
,"penned, close the gate with ","the 0 key an
d your score will ","be displayed. Less than
138 Sheepdog Trials
■four "/sheep in the pen, or running", "over t
ime, results in a zero "/score"
5030 PRINT
5050 PRINT
5060 PRINT "Any number o-f players can play ",
"in turn": PRINT
5070 PRINT "Press any key to start": PAUSE 0
5030 RETURN
6000 RESTORE : FOR x = USR "a" TO USR "a"+87
6010 READ n: POKE x,r.
6020 NEXT x
6030 DATA 0,0,2,135,126,124,230,149,0,0,64,22
5,126,62,103,169,0,0,0,6,127,254,126,37,0,0,0
,96,254,127,126,164
6040 DATA 1,1,1,1,1,1,1,1,128,128,128,123,128
,128,128,128,255,0,0,0,0,0,0,0
6050 DATA 255,123,128,128,128,128,128,128,255
,1,1,1,1,1,1,1,123,128,123,128,128,128,123,25
5, 1,1,1,1,1,1,1,255
6060 RETURN
139
Picture Pairs
This is one for the kids, testing their powers of observation and memory.
There are ten pictures of various objects displayed on the screen for a few
seconds. They are then hidden from view. When you choose one of the
squares the picture is revealed and you must then identify the square
behind which the corresponding image is hidden. If the two pictures
chosen do not form a pair, they are once again hidden and no points are
scored.
10 REM ** HI-RES PICTURE PAIRS @1
983 MICHAEL BEWS
15 POKE 23609,110
20 PAPER 5: INK 1
25 LET LS=100: LET TT=0: LET TS=0
30 DIM A(12,72): DIM 0(20): DIM R<20>: DIM
T(20) : DIM U < 20)
40 GO TO 600
49 REM ** DISPLAY PICTURES **
50 FAPER 6: INK 6: CLS : PRINT PAPER 7; IN
K 15 INVERSE 15“ PAIRS @1983 MICHAEL BE
WS "
60 FOR K=1 TO 10: PAPER K/2: INK K/2: FOR L
=0 TO 7: FOR M=1 TO 9
70 POKE USR CHR* (143+M)+L,A(CODE G*(K)-64,
L*9+M)
80 NEXT M: NEXT L
90 LET X=CODE D*(K*2-1)-64: LET Y=CODE D*(K
*2)-64
100 PRINT AT Q(X),R(X)i "ABC"} AT Q(X)+1,R(X)5
"DCF" ;AT Q(X)+2,R(X)5“ GUI "5
110 PRINT PAPER 6; INK 6;AT Q ( Y) , R (Y) 5 “ ABC 11
;AT Q(Y)+1,R(Y)5 "DCF" ,AT 0(Y)+2,R(Y)5 "GHI "5
120 NEXT K
125 PAPER 7: INK 1
130 LET A=-40: LET B=-A
140 FOR Y=160 TO 40 STEP A
150 FOR X=23 TO 200 STEP B
160 PLOT X,Y: DRAW 27,0: DRAW 0,-27: DRAW -2
7,0: DRAW 0,27
140 Picture Pairs
170 NEXT x: NEXT Y
200 LET W=57+INT <RND*3>: LET Z=22595
210 FOR X=1 TO 9: FOR Y=1 TO 20: POKE Z+T(Y)
+U(X),W: NEXT Y: NEXT X
220 PRINT PAPER 6; INK 0;AT 1,4;"l";AT 1,9;
"2";AT 1,14;*3"SAT 1,19;"4";AT 1,24;"5";AT 3,
0;"6 “;at 8,0!"7";AT 13,0; m 8";at 18,0;"9"; pap
ER 2; INK 7;AT 6,27;"TRIES"; PAPER 1;AT 9,27;
"SCORE";
230 FOR X=5 TO 0 STEP -1: PRINT AT 18,30; IN
K 7; PAPER 2; FLASH 1;X;: FOR Y=i TO 250: NEX
T Y: NEXT x: PRINT AT 18,30; PAPER 6;“ "
240 PRINT AT 20,0; INVERSE 1;"ENTER ROW/COLU
MN NUMBERS TO TRY FOR A MATCHING PAIR OF PICT
URES "
250 LET W=18: LET Z=22595
260 FOR X=1 TO 20: FOR Y=1 TO 9: POKE Z+T(X)
+U(Y),W: NEXT Y: NEXT X
270 INPUT INVERSE 1;"ENTER FIRST PICTURE(eg
82) 11 ; X*: IF X*=" " THEN GO TO 270
280 IF LEN X*<>2 OR X* (1 ) < " 1 " OR X*<1)>"9" 0
R X*<2)<"1 " OR X*(2)>"9" THEN GO TO 270
290 GO SUB 540
300 IF P<1 OR P >20 THEN GO TO 270
302 IF S*(P)="1" THEN GO TO 270
305 LET Q=P: LET SA=P
307 FOR X=1 TO 9: POKE Z+T(P)+ U (X),40: NEXT
310 INPUT FLASH 1; INK 2;"ENTER NEXT PICTUR
E(eg 82)";X$: IF X*= “ " THEN GO TO 310
320 IF LEN X*<>2 OR X*(1)<"1" OR X*<1)>"9" 0
R X$(2)<"1“ OR X*(2)>"9" THEN GO TO 310
330 GO SUB 540: IF P<1 OR P>20 THEN GO TO 3
10
332 IF S*(P)="1" THEN GO TO 310
335 FOR X=1 TO 9: POKE Z+T(P)+U(X),40: NEXT
X
340 LET SB=P: FOR X=1 TO 10: IF (D*(X#2-1)=C
HR* (SA+64) AND D*(X*2)=CHR* (SB+64))+(D*(X#2
-1)=CHR* (SB+64) AND D*(X*2)=CHR* (SA+64)) TH
EN LET V=57: LET TT=TT +1: LET TS=TS+1: PRINT
AT 7,29;TT;AT 10,29;TS;: LET S*(SA)="1": LET
S*(SB)="1": GO TO 400
350 NEXT X
Picture Pairs 141
360 LET TT=TT+l: PRINT AT 7,29;TTf LET V = W
400 GO SUB 520
405 FOR X=1 TO 20: IF S*(X)<>"1" THEN GO TO
270
410 NEXT X
420 REM ** END OF GAME ROUTINE
430 IF LS>TT THEN LET LS=TT
440 PRINT AT 20,0;”
” ; AT 2
0,05 INVERSE If YOU TOOK ”;TT;" TRIES THIS TI
ME. LOWEST SCORE THIS SESSION: ";LS;
450 INPUT FLASH 1;"PRESS <ENTER> FOR NEXT G
AME";X$
460 LET TT=0: LET TS=0
470 GO TO 640
519 REM **WRONG GUESS ROUTINE
520 FOR X=1 TO 9: POKE Z+T(<3)+U(X),V: NEXT X
: FOR X=1 TO 9: POKE Z+T(P)+U<X),V: NEXT X: R
ETURN
529 STOP
530 FOR X=1 TO 9: POKE Z+T(P)+U(X),57: NEXT
X: RETURN
539 REM ** ROW/COLUMN INPUT
540 LET A=0: LET B=0: LET A=(VAL X$<1) AND <
CODE X*(l>>53 AND CODE X$(1)<58))+<VAL X*<2)
AND (CODE X$(2)>53 AND CODE X$<2)<58)>
550 LET B=(VAL X*(1) AND (CODE X*<1)>48 AND
CODE X*(1)<54))+(VAL X*<2> AND (CODE X^(2)>43
AND CODE X$(2)<54))
560 LET P=5*(A-6)+B
570 RETURN
598 STOP
599 REM ** INITIALISATION
600 CLS : PRINT PAPER 7; INK 1; INVERSE If
PAIRS @1983 MICHAEL BEWS ”
605 PRINT AT 2,9; PAPER 7; INK 4; FLASH If I
NITIALISING"; FLASH 0; INVERSE 15 INK 15 AT 4,
0;" THIS PROGRAM DISPLAYS TEN PAIRS OF HIGH R
ESOLUTION PICTURES AND THEN CONCEALS THEM FRO
M VIEW. "5AT 9,0;" THE OBJECT OF THE GAME IS
TO MATCH ALL TEN PAIRS IN THE LOW- EST PO
SSIBLE NUMBER OF TRIES.
610 FOR X=1 TO 11: FOR Y=1 TO 72: READ A(X,Y
): NEXT Y: NEXT X
142 Picture Pairs
620 FOR X=1 TO 20: READ Q(X): NEXT X: FOR X=
1 TO 20: READ R(X) : NEXT X
630 FOR X=1 TO 20: READ T(X): NEXT X: FOR X=
1 TO 9: READ U(X): NEXT X
640 LET D*="00000000000000000000": LET S*=D*
: LET E*=D$: LET F*="00000000000": LET G$=F*(
TO 10)
695 PRINT AT 15,4; PAPER 7; INK 2; FLASH 1;"
NEXT GAME IN 25 SECONDS "
700 FOR X=1 TO 10
710 LET N=1+INT (RND*11)
720 IF F$(N)= ,, 1" THEN GO TO 710
730 LET F$(N) = ,, 1”
740 LET NA=1+INT <RND*20>
745 IF ES<NA)="1" THEN GO TO 740
750 LET E$(NA)="1 B : LET G*(X)=CHR* (64+N)
760 LET NB=1+INT <RND*20)
770 IF E*(NB)="1“ THEN GO TO 760
780 LET E$(NB)="1": LET D*(X#2-1)=CHR* (64+N
A): LET D$<X*2)=CHR* (64+NB)
790 NEXT X
800 GO TO 50
998 STOP
999 REM *** ship
1000 DATA 0,0,0,0,0,8,15,255,224,0,0,0,3,128,
0,63,255,252,0
1009 REM ** helicopter
1010 DATA 0,0,0,0,7,128,0,255,252,0,0,0,0,12,
192,0,0,0,0,0,0,96,24,96,0,0,0,0,0,0,127,240,
1019 REM ** bus
1020 DATA 0,0,0,0,0,0,60,1,224,0,0,0,63,255,2
52,24,0,192,0,0,0,36,16,84,0,0,0,0,0,0,36,16,
34,0,0,0,0,0,0,36,16,84,0,0,0,0,0,0,63,255,21
4,0,0,0,0,0,0,63,255,214,0,0,0,0,0,0,127,255,
214,0,0,0
1029 REM railway engine
1030 DATA 0,0,0,12,3,128,7,131,192,0,0,0,12,1
95,123,3,1,128,0,0,0,31,255,128,0,0,0,0,0,0,3
Picture Pairs 143
1,255, 240,0,0,0,0,0,0, 31,255, 240,0,0, 0,0,3,24
0,31,255,240,0,0,0,0,2,128,15,255,240,0,0,0,1
2,2,128,31,255,240,0,0,0
1039 REM ** tree
1040 DATA 3,15,0,127,255,252,0,60,0,3,255,192
,63,255,188,0,60,0,15,255,240,55,247,248,0,60
,0,15,255,248,31,63,248,0,60,0,126,255,126,31
,60,240,0,60,0,127,255,254,24,60,48,0,60,0,25
5,255,252,0,60,0,0,60,0,127,223,252,0,60,0,0,
60,0
1049 REM ** car
1050 DATA 0,0,0,0,127,0,12,0,24,0,0,0,0,132,1
0,0,0,0,0,127,255,254,0,0,0,0,0,0,30,0,60,0,0
, 0
1059 REM ** television set
1060 DATA 0,0,0,48,0,104,48,0,104,0,0,0,48,0,
120,63,255,248,0,0,0,48,0,104,63,255,248,0,0,
1079 REM ** -flying goose
1080 DATA 0,0,0,0,120,0,1,0,0,0,0,0,0,124,0,3
1089 REM ** tank
1090 DATA 0,0,0,64,3,0,51,51,48,0,0,0,64,255,
0,63,255,240,0,0,0,65,255,128,12,204,192,0,0,
0,67,0,255,0,0,0, 64,0,0,79,255, 192,0,0,0,64,0
,0,255,255,240,0,0,0,64,0,0,255,255,248,0,0,0
,64,0,0,127,255,252,0,0,0
1099 REM ** clock
2000 DATA 0,0,0,9,64,144,8,66,16,0,0,0,8,32,1
6,8,24,16,0,0,0,8,16,16,8,0,16,15,255,240,10,
2009 REM ** apple
2010 DATA 0,0,0,1,255,123,3,255,192,0,0,0,3,2
55,192,1,255,128,0,192,0,3,159, 192,0,255,0,0,
32,0,7,255,224,0,60,0,0,16,0,7,255,224,0,0,0,
144 Picture Pairs
0, 16,0, 7.255,224,0,0,0,0,6.0,0, 7,255,224,0,0,0
,0,255,0,3,255,192,0,0,0
2019 REM ** SCREEN PRINT AT X,Y
2020 DATA 2.2,2,2,2,7,7,7,7,7,12,12,12,12,12,
17,17,17,17,17
2030 DATA 3,8,13,13,23,3,8,13,13,23,3,8,13,18
,23,3,8,13,13,23
2039 REM #* ATTRIBUTE PRINT AT
2040 DATA 0,5,10,15,20,160,165,170,175,130,32
0,325,330,335,340,480,485,490,495,500
2050 DATA 0,1,2,32,33,34,64,65,66
145
Dambusters
Dambusters is a game in which you have to defend a dam which is under
attack from enemy aircraft, armed with bouncing bombs. Each bomb
which succeeds in hitting the dam will blow a section of it away until
eventually the water pours through and the game is over.
Your defence consists of two beam guns which are mounted at each side
of the dam and which fire converging ray beams at a target sight
controlled by the player. Since the aircraft are out of range, you must aim
the bouncing bombs themselves by moving your sight up, down, right or
left and then use the zero key to fire. Unfortunately your beam weapons
need to be recharged after every three firings and therefore accuracy is
vital, especially as there is a strong wind which has a tendency to blow
your sights off course!
1 REM @ PAUL STANLEY
2 LET hs=0
5 BORDER l: PAPER 1: INK 7: CLS
8 60 SUB 8000
10 GO SUB 1000
15 PRINT AT 0,0? BRIGHT U"SCORE:0"
17 PRINT AT 0,205 BRIGHT 1;"HI-SCORE:"Jhs
20 PRINT AT 20,0; ink 3j"::::;::::::::::::
25 FOR -f = l TO 50: PLOT RND*255, 175-RND*l30:
NEXT i
30 LET g-0: FOR -f-1 TO 5: PLOT g,15 + -f: DRAW
255-2*g,0: LET g=g + 2: NEXT -f
40: PLOT 0,16: DRAW 128,20: PLOT 255,16: DR
AW -128,20
50 PLOT 0,16: DRAW 0,9: DRAW 2,0: DRAW 4,4:
DRAW 1,-1: DRAW -4,-4: DRAW 0,-8
55 PLOT 255,16: DRAW 0,9: DRAW -2,0: DRAW -
4,4: DRAW -1,-1: DRAW 4,-4: DRAW 0,-8
70 LET d-1
72 LET s°0
80 LET a»l
85 LET p=16
146 Dambusters
90 LET y=9
95 LET x=INT <RND*20)+6
97 FOR f = l TO 5 STEP 2: PRINT OVER 1 5 AT 5,
x; INK 6jb*(f>!b*<f+l): BEEP .1,-20: PRINT 0
VER HAT 5, x;b*(-f) ;b$<-f + l> : NEXT -f: FOR + = 1 T
O 4: PRINT OVER l;AT 5-f,xi INK 6ib$(5);b*<6
);AT 5 + -f , x| "£■ : BEEP .1,-20: PRINT OVER HAT
5-f ,x;b$<5) Jb*<6) i AT 5+-f,x}"S“: NEXT f
98 LET f=INT CRND*25)+3: LET g-5+INT CRND*1
1)
100 LET a *~ m ABCD£F m \ LET ht“10
120 PRINT OVER HAT y,xia*(a)
122 LET -f—f + (INKEY*=“8 M AND -f < 29 ) - (INKEY*= " 5
“ AND -f >2) : LET g=g+ (INKEY$= “ 6 " AND g<17)-(IN
KEY*=“7" AND g>3)
125 PRINT OVER HAT g , i i INK 5 I " + "
126 LET loss-loss+leek
127 IF loss>1000 THEN GO TO 400
128 IF INKEY*="9“ THEN IF a<3 THEN GO SUB
200
130 BEEP .03,-y
140 PRINT OVER HAT y,xja*<a)
145 PRINT OVER HAT g,-f|« + *
150 LET y=y+d
155 IF RND >. 6 THEN LET -f—f + INT <RND*1.5)-IN
T <RND*1.5>
157 IF RNDC.4 THEN LET g=g+INT <RND*1.5 AND
g< 18)-INT (RND*1.5)
160 IF y**ht THEN LET p=p+l: LET d = l: LET a=
a+ 1
170 IF y=p THEN BEEP .15,-20: LET a=a+l: LE
T d—l: LET ht = ht-3
180 IF a=7 THEN GO TO 350
190 GO TO 120
200 LET U-<21-g)*8-25: OVER 1: PLOT 6,29: DR
AW f*8-2, k: BEEP .03,30: BEEP .03,40: PLOT 6,
29: DRAW -f *8-2, k
205 LET s-s+1
210 PLOT 249,29: DRAW -f*8-245,k: BEEP .03,30
: BEEP .03,40: PLOT 249,29: DRAW f*8-245,U: O
VER 0
215 IF g-y THEN IF x=-f THEN GO TO 300
220 RETURN
Dambusters 147
300 LET sc*=sc+10: PRINT AT 0,65 BRIGHT 11 sc:
PRINT AT g,-M INK 65"//“: BEEP .08,-10: BEEP
.08,-12: BEEP .08,-8: BEEP .08,-12: PRINT AT
g, -f J " " : GO TO 70
350 FOR a-1 TO 5: BEEP .001,20: BEEP .001,40
: NEXT a: IF SCREEN* (19,x)-” " THEN GO TO 3
70
360 PRINT AT 19,x5" ": GO TO 70
370 IF SCREEN* <20,x><>":" THEN GO TO 390
375 LET 1eek=leek+1
380 PRINT AT 20,xj" “JAT 21,xj PAPER 5j FLAS
H 1 i “6“ : GO TO 70
390 LET leek-leek+2: PRINT AT 19,x-l5“ "5A
T 20,x -11 “ M iAT 21,x-1J PAPER 55 FLASH 1| ”6
66“: GO TO 70
400 PRINT AT 10,55 -- G A M E OVER-": PR
INT AT 13,2j"Press any key to play again.": F
OR -f = l TO 20: BEEP . 03, i: NEXT i
405 IF sc>hs THEN LET hs=sc
410 IF INKEV*< >“" THEN CLS : RESTORE : GO T
0 10
420 GO TO 410
1000 FOR -f=USR "a" TO USR “l“+7: READ b: POKE
-f , b: NEXT i
1001 LET loss=0: LET sc=0: LET leek=0
1010 DATA 0,0,0,16,0,0,0,0,0,0,0,24,24,0,0,0
1011 DATA 0,0,0,56,56,0,0,0,0,0,0,60,60,60,0,
0
1012 DATA 0,0,126,126,126,126,0,0,0,0,254,254
,254,254,254,0
1013 DATA 73,BIN 10010010,73,37,BIN 01001010,
BIN 10010001,BIN 01001010,BIN 1001001
1014 DATA 153,58,36,219,219,36,58,153
1016 DATA 0,0,0,8,62,0,0,0,0,0,24,255,66,0,0,
0
1017 DATA 0,0,1,255,37,0,0,0,0,0,128,255,164,
0 , 0,0
1018 LET b*=*=" / J KL “
1020 RETURN
8000 PRINT AT 0,55"D A M B U S T E R S"5 OVER
1 5 AT 0,55"_"5 INK 55AT~2,7
5Paul Stanley."
8010 PRINT ’"THE YEAR IS 1943. YOU ARE IN
148 Dam busters
CHARGE OF A POWERFUL BEAM WEAPONWITH WHICH YO
U ARE TO PROTECT A DAM FROM THE BOUNCING BO
MBS OFTHE BRITISH ATTACKERS. THEY HAVESEVERAL
LANCASTER BOMBERS WHICH FLY TOWARDS YOU AND
RELEASE THEIR DANGEROUS BOMBS."
8020 PRINT '"HOWEVER, YOUR TASK IS NOT ALL
THAT SIMPLE FOR YOUR WEAPON IS UNABLE TO REA
CH THE LANCASTERS SO YOU MUST JUST SHOOT AT
THE BOMBS INSTEAD. YOU CAN MOVE YOUR CR
OSS-HAIR SIGHTS WITH THE CURSOR KEYS."
8025 PRINT '“PRESS ANY KEY TO CONTINUE.": PAU
SE 0: CLS
8030 PRINT “EVEN ADJUSTING THE SIGHTS IS D
IFFICULT BECAUSE THERE IS A STRONG WIND WH
ICH CAUSES YOUR SIGHTS TO MOVE ABOUT."
8045 PRINT ’“FIRE YOR BEAM WITH ""9"““: PRINT
8050 PRINT "BECAUSE OF THE POWER OF YOUR W
EAPON AFTER 3 SHOTS IT IS DRAINED OF POW
ER AND WILL ONLY BE READY BY THE NEXT TIME A
N AEROPLANE ATTACKS. YOUR BATTLE IS OVER
WHEN TOO MUCH WATER HAS POURED THROUGH THE BR
OKEN DAM. "PRESS ANY KEY TO START"
8060 PAUSE 0: CLS : RETURN
149
0X0
The classic game, played against the computer. But in our version the
computer can be beaten!
5 REM NOUGHTS+CROSSES 0 1932 B
Y MICHAEL BEWS
10 DIM a*(9): DIM a<9): LET d=0: LET h=0: L
ET m=0: LET n=0: LET t=0
12 PAPER l: BORDER 1: INK 7: CLS
15 LET Y*=CHR* 143+" "+CHR* 143+"
+ CHRS 143+“ "+CHR$ 143
20 LET Z$=“■■■■■■■■■■■■■■■■■■■": REM y* AND
z* TO -form grid
25 FOR x=0 TO 7: READ a: POKE USR "c"+x,a:
NEXT x: FOR x=0 TO 7: READ a: POKE USR "a“+x f
a: NEXT x: REM USR defined x AND o
30 GO TO 200
34 REM ******** main routine ***
35 BEEP .1,t*4: LET t=t+l: LET a$(n)=CHR$ (
a+145): LET a(n)=SGN a: LET a=-a: IF a<0 THEN
PRINT AT 10,30;” ";
40 FOR x=0 TO 2: FOR y=l TO 3: LET z=x*3+y:
FLASH 1 AND z=n: PRINT AT 5+5*x,3 + 6*y5a$(z):
NEXT y: NEXT x: FLASH 0
49 REM ****check -for win****
50 FOR x=0 TO 2: IF ABS <a<3*x+l)+a(3*x+2)+
a(3*x +3))=3 OR ABS (a(x +1)+a(x+4)+a(x+ 7))=3 T
HEN GO TO 300
60 IF x>l THEN GO TO 80
70 IF ABS (a (5) + a < 5 + 2* ( x + 1) ) + a ( 5-2* < x +1) ) ) ■
3 THEN GO TO 300
80 NEXT x: IF t=9 THEN GO TO 118: REM ****
check -for a draw****
85 IF a<0 THEN GO TO 150: REM ****players
turn****
90 IF t>0 THEN GO TO 96
92 LET n=l+2*1NT (RND*5): IF n=5 THEN GO T
O 92: REM ***choose a corner square on -first
move***
94 GO TO 35
150 0X0
95 REM ***check -for possible wi n (U :b 2) , then
check -for possible opponent’s win (k=-2)
96 LET k=2: LET n=0
100 FOR x=0 TO 2: IF a(3*x+1)+a(3*x+2)+a<3*x
+ 3)=k THEN GO TO 120
105 IF a(x+l)+ a(x + 4)+a(x+7)=k THEN GO TO 13
0
110 IF x=2 THEN GO TO 112
111 IF a(5)+a(5+2*(x+l))+a<5-2*(x+1))=k THEN
GO TO 140
112 NEXT x: LET k--k: IF k<0 THEN GO TO 100
113 REM ***choose a corner square if pos3ibl
e (40 attempts)***
114: FOR x*1 TO 40: LET n»l+2*INT (RND*5) : I
F n< >5 AND a(n)*0 THEN GO TO 35
115 NEXT x
116 FOR x=l TO 9: IF a(x)=0 THEN LET n=x: G
0 TO 35: REM ***choose any vacant square*****
117 NEXT x
118 PRINT AT 19,135 FLASH 1;"DRAW!"! FLASH 0
: LET d=d+l: FOR x=13 TO 1 STEP -1: BEEP .l,x
-8: NEXT x: GO TO 320
119 REM ***select the vacant square in poten
tial win row****
120 FOR y=3 TO 1 STEP -1: IF a(3*x + y)=-0 THEN
LET n=3*x+y: GO TO 35
125 NEXT y
130 FOR y=3 TO 1 STEP -1: IF a(x+y*3-2)=0 TH
EN LET n=x+3*y-2: GO TO 35
135 NEXT y
140 IF a (5) *=0 THEN LET n-5: GO TO 35
142 IF a(5 + 2*(x +1))=0 THEN LET n*5 + 2*(x + 1):
GO TO 35
144 IF a(5-2*(x+1))=0 THEN LET n=5-2*(x+l):
GO TO 35
149 REM ***player’s turn***
150 LET x*-INKEY*: IF x*-“" OR x*<■1" OR x*>
“9“ THEN GO TO 150
160 LET n=VAL x*
170 PRINT AT 11,26;" " 5 AT 10,26; "You ”;
n;: IF a*(n)>“9" THEN PRINT AT 11,26;"AGAIN!
";: FOR x=l TO 5: FOR y=l TO 3: NEXT y: BEEP
.1,30: NEXT x: GO TO 150
180 GO TO 35
0X0 151
199 REM ****INITIALISATION*****
200 PRINT TAB 7;“NOUGHTS U CROSSES"»AT 0,75
OVER 15"_"5 OVER 0
210 FOR x = l TO 9: LET a$<x)-STR* x: NEXT x
230 PRINT : PRINT : FOR X=1 TO 3: PRINT TAB
65 INK 6lZ*iTAB 6; INK 4;Y*5TAB 65 INK 2jY*jT
AB 65 INK 5JY*;TAB 65 INK 3SYS>: NEXT X: PRINT
TAB 65 INK 652$
240 PRINT AT 1,15 "I am'* 5 TAB 25 5 "You are" 5 AT
3,25 “C “ 5AT 3,285 ">4" 5 FLASH 0
250 LET a=(2*INT <l+RND*2)-3)
260 LET p*="Me”: IF a<0 THEN LET p*="You"
270 PRINT AT 2,8jp*5" to go FIRST”j: GO TO 4
0
299 REM ****END OF GAME ROUTINE***
300 LET p$= 11 YOU WIN": IF a<0 THEN LET p*=" I
WIN": LET m=m+1: GO TO 310
305 LET h=h+1
310 PRINT AT 19,135 FLASH l;p$5 FLASH 0: FOR
x=l TO 4: FOR y= 1 TO 10: BEEP .04,y*2: NEXT
y: NEXT x
320 PRINT AT 20,0;5"Score: You "5h5" Me “ 5
m;" Draw “;d;AT 21,3;"Press any key for ne
w game“i
330 LET x$=INKEY$: IF x*-"" THEN GO TO 330
335 FOR x=l TO 9: LET a(x)=0: NEXT x
340 LET r\=0: LET t=0: CLS : GO TO 200
350 DATA 24,126,102,195,195,102,126,24,129,1
95,102,60,24,60,102,195
152
Space Traffic
As you travel about in the midst of an asteroid belt recovering lost satel¬
lites (well, someone has to do it), you are assailed by missiles and enemy
spacecraft which you can either dodge or attack. Movement is either to
left or right using the Z and X keys and your cannon can be fired with the
M key, although this will lose you points.
The satellites are collected by manoeuvering your spaceship into them
and points are gained for each one which you manage to recover.
Collision with other objects results in destruction, although you are
alloted five lives at the start of each game.
1 BORDER 0 : INK 6: BRIGHT 1: PAPER 0: CLS
10 GO SUB 9000
20 GO SUB 8000
50 LET hs=0
70 PRINT FLASH lj" - ASTEROIDS DETECTE
D - u. F0R F=1 TQ FQR d= _ 2 0 jo 0 : BEEP
. 02, d: NEXT d: NEXT -f
90 LET xl=x
100 LET x=x+<INKEY*=“x" AND x<26) - < INKEY*=» M z
“ AND x >5)
105 IF (ATTR (7,x)=71 OR ATTR <7,x)=66) THEN
IF SCREEN* <7,x)="“ THEN LET hit=l
107 IF ATTR < 7,x)=68 THEN FOR d-0 TO 60 STE
P 20: BEEP .01,d: NEXT d: LET sc»sc+l
110 POKE 23692,255: PRINT AT 6,xl;'* " JAT 21,
31 ; “ “ : INK 4: AT 6, xj "-4-
112 IF q=6 THEN IF w-x THEN BEEP .01,20: B
EEP .01,10: BEEP .01,20: GO SUB 4100
115 IF hit=1 THEN LET hit=0: BEEP .1,-10: G
0 SUB 4100
117 IF INKEY*=“m" THEN GO SUB 5000
120 LET 1=INT <RND*30): LET g=(INT <RND*3>*2
)+l: PRINT INK 7;AT 20,l;a*(g TO g+1)JAT 21,
1!b*(g TO g+1)
125 IF c >400 THEN LET 1 = INT <RND*30>: LET g
»<INT <RND*3)*2)+l: PRINT INK 7;AT 20,l;a*(g
TO g+1);AT 21,l;b*<g TO g+1)
Space Traffic 153
130 IF c=200 THEN LET a %="CDB K " : LET t>$="
EF
135 IF c=300 THEN LET a$= "CDCDCD ": LET b$=”
EFEFEF"
140 IF RND >.6 THEN PRINT INK 4JAT 21,RND*3
05 " 6 "
150 IF RND<.4 THEN PRINT INK 2;AT 21,RND*3
0! “H“
160 IF ATTR (8, x ) =66 OR ATTR (9,x)=66 OR ATT
R ( 10,x)=66 OR ATTR ( 11 ,x)=66 THEN GO SUB 40
00
185 LET c = c +1
187 IF c >400 THEN GO TO 90
190 LET q=q-2: PRINT INK 5; AT q.wl'i’-lAT q +
l,wi" IF q=0 THEN LET q=20: LET w=x
200 GO TO 90
4000 LET d=88*<ATTR (11,x)=66)+96*(ATTR <10,x
) =66) +104*<ATTR < 9 , x ) =66)‘+ 112* < ATTR <8 ,x)=66)
: IF d >112 THEN LET d = 112
4005 PLOT x*3+3,d: DRAW INK 650,120-d: FOR i
=35 TO 40: BEEP .002,-f: NEXT -f: PLOT OVER 1!
x*3+3,d: DRAW OVER l;0,120-d
4100 FOR g=l TO 2: FOR -f=5 TO 0 STEP -1: PRIN
T AT i ,x-5 + -f i “ . “ SAT i , x + 5-f i " . " 5 AT 10--f,x-5 + -f
j ". -, AT 10-f, x+5—f 5 ". " i AT -f, x; ". “; AT 10~f,x5"
. “ i AT 5, x + 5-T j “ . " i AT 5, x-5+-f i " . "
4110 NEXT -f: OVER 1: NEXT g: OVER 0: PRINT AT
5,xi " u
4130 LET 1i=li-1: PRINT FLASH 1JAT 0,0i"LIVE
S' LEFT: ■ i 1 i 5 TAB 23 5 "SCORE: " ! sc : FOR -f = -30 TO
0: BEEP .02,-f: NEXT -f
4135 IF 1i< >0 THEN RETURN
4137 FOR -f = l TO 4: BEEP .3,0: BEEP .6,10: FOR
g=l TO 20: NEXT g: NEXT i
4140 CLS : PRINT AT S^^You Scored " i sc i " po
ints.*
4145 PRINT ’’"The high-score is "ihsi"."
4150 IF sc >hs THEN LET hs=sc: PRINT INK 5’’
‘Congratulations!"That is a new high score
4160 PRINT INVERSE 1’ "'PRESS ANY KEY TO PLAY
AGAIN."
4170 PAUSE 0: CLS : GO SUB 9500: GO TO 70
5000 LET sc=sc-l: FOR -f =7 TO 17
154 Space Traffic
5010 PRINT AT f,x5" : BEEP .001,30
5020 PRINT AT f,x»" IF SCREEN* <f+l,x>-"“
THEN GO TO 5030
5025 NEXT f
5030 IF ATTR <f+l,x)<>71 THEN RETURN
5040 PRINT AT f+l,xi“ “ ; FOR d=l TO 3: BEEP .
03,-20: NEXT d
5050 IF RND >.4 THEN RETURN
5055 LET t=INT <RND*4)+1
5060 FOR d=0 TO t: PRINT AT f+i-d,x-d; INK 7f
*fl“|AT f+l-d, x + d ; ; AT f + 1 + d, x-d ; “ B "; AT f + l +
d, x + d;" B"
5065 BEEP .03,-40
5070 IF d< t THEN PRINT AT -f + 1-d , x-d ; B " i AT f
+1 -d , x + d i " ";AT -f + l+d, x-d; * " j AT f+l+d,x+d;"
5080 NEXT d: RETURN
8000 PRINT INVERSE lj" SPACE TRAF
F I C " ’ ’ " BY PAUL STANLEY
8010 PRINT INK 7’"You are flying through spa
ce when suddenly you encounter an asteroi
d belt. ■
8020 PRINT INK 4’"Enemy craft will fire at y
ou given the chance, and other missile
s are aimed right at you."
8030 PRINT ’"To score you have to recover
lost satellites in your craft."
8040 PRINT INK 5’"If you are desperate, you
can fire at asteroids, but you lose a satel
lite in the process."
8050 PRINT ’"Wove left with Z, right with X,
and fire with M"
8060 INPUT PAPER 6; INK 35" PRESS ENTER
TO START «J LINE q*
8070 CLS : RETURN
9000 FOR x=USR "a" TO USR "k“+7: READ y: POKE
x,y: NEXT x
9010 DATA 254,124,40,124,40,56,16,16,0,48,72,
84,72,48,0,0,1,2,60,64,160,132,136,129
9020 DATA 224,152,8,136,70,9,17,145,130,144,1
21,5,4,5,6,3,133,3,20,72,16,32,32,192
9030 DATA 129,66,60,36,36,60,66,129,16,16,56,
Space Traffic 155
84,84,56,16,124,0,16,8,16,32, 16,16,56
9040 DATA 24,54,41,66,169,130,84,56,38,91,162
,152,130,106,60,4
9500 LET J K ": LET b*= u u : LET x=
15: LET c“0: LET hit=0: LET sc=0
9510 LET q-=20: LET w=x: LET li=5
9700 RETURN
156
Dam Eaters
The object of this game is to prevent the dam-eating creatures from
eating away the dam which is built up on the left-hand side of the screen
by dropping shells on them from any of the three cannon at the top. The
dam eaters enter randomly from the right of the screen and gradually
chew away the bricks of the dam until finally they break through and you
have lost the game. The game contains a number of other features which
you will have to discover by experience.
1 BORDER 01 PAPER 0: INK 7: CLS
5 LET hs=0
10 GO SUB 9000
15 GO SUB 7000
17 GO SUB 9800
20 GO SUB 8000
30 FOR i = l TO n
40 LET x <i)=x <iJ-1: IF RND>.8 THEN GO SUB
1000
50 PRINT AT y ( i ) , x < i ) ( INK i+3f u Uif "
60 IF ATTR (y(i),x(i)-l)=22 THEN GO SUB 20
00
80 NEXT i
90 LET q*=INKEY*
100 IF NOT b THEN IF q*<>"" THEN LET g=<VA
L q*)*6+2: LET sl=VAL q*: LET -f=0: LET b-l: B
EEP .01,30: IF g< >8 AND g<>14 AND g<>20 THEN
LET b=0
110 IF NOT b THEN GO TO 30
115 FOR 1=1 TO 2
140 PRINT AT i ,g;■ "
150 LET -f=f + l: IF -f =21 THEN GO TO 5000
160 IF SCREEN* <-f | g)=“» THEN GO TO 3000
170 PRINT AT i ,g5 » I M
190 NEXT i
200 IF n< 3 THEN LET c=c+l: IF c = 130 THEN L
ET n=n+1: LET c=0: PRINT AT 17,8;"ENEMY REINF
ORCEMENT": FOR 1=1 TO 30: BEEP .03,1: NEXT i:
PRINT AT 17,85"
999 GO TO 30
Dam Eaters 157
1000 PRINT AT y<i),x(i>|"
1005 LET y ( i )=y(i)+1-(2 AND RND>.5)
1010 IF y ( i )=0 THEN LET y(i)=20
1020 IF y(i)=21 THEN LET y<i)=l
1030 RETURN
2000 PRINT AT y(i), x < i ) -15 BRIGHT 1 i a E6 m i BEE
P .03,5: PRINT AT y(i),x(l)-l; BRIGHT
BEEP .03,0
2010 PRINT AT y<i),x<i)-15 "
2020 IF SCREEN* <y(i),x<i)-2)=" " THEN GO TO
4000
2030 LET y <i)=INT <RND*20)+1: LET x(1)=29
2040 RETURN
3000 PRINT AT f,g-15 BRIGHT 1 \*F6F". FOR o=3
TO 9 STEP 3: BEEP .01,o: NEXT o: PRINT AT f,g
-15 BRIGHT 1\"GFG"\ BEEP .05,25: PRINT AT f , g
-1 5 "
3005 LET sc = INT (sc + sl*2 + -f/3) : PRINT AT 0,29}
sc
3010 LET b=0
3015 FOR i=l TO n
3020 IF -f =y <i) THEN IF g=x<1) OR g=x(i)+l TH
EN GO TO 3500
3030 NEXT i
3500 LET y <i)=INT <RND*20)+l: LET x(i)=29
3510 GO TO 30
4000 FOR o=2 TO 5: PRINT AT y<iJ,o5 INK 15"1"
: BEEP .07,-20: NEXT o
4010 FOR o=y(i) TO 20: PRINT AT o,5; INK 1 5 ”■
•: BEEP .07,-20: NEXT o
4020 FOR o=20 TO 0 STEP -1: PRINT AT 0,55 INK
i; 'uiuininiumiiiiniiii
4025 BEEP .07,-20
4030 IF SCREEN* <o,4)=" * THEN PRINT INK 15
AT o,4;
4040 IF SCREEN* <o,3)=" “ THEN PRINT INK 15
AT 0,35
4050 NEXT o
4055 PRINT PAPER 15 INK 6 5 AT 4,65"You Scored
* 5 sc 5" Points."
4060 IF sc >hs THEN PRINT AT 6,65 PAPER 15 IN
K 65"Wei 1 Done! That’s A New"5 AT 7,6!"High Sc
ore!!": LET hs=sc
158 Dam Eaters
4070 PRINT PAPER IS INK 6;AT 9,65"The High-S
core Is “!hs
4080 PRINT PAPER 1; INK 6JAT 11,65“PRESS A K
EY TO PLAY AGAIN"
4090 IF INKEY*="" THEN GO TO 4090
4100 CLS 5 GO TO 17
5000 PRINT AT 20,gs INK 55“/“: BEEP .1,-30: P
RINT AT 20,g;“ “
5010 LET b=0: GO TO 30
7000 PRINT AT 0, 6 5 11 D AM EATERS
7020 FOR f=29 TO 4 STEP -1: PRINT INK 55 AT 2
,U“VS BEEP .03,-20: NEXT f
7030 PRINT AT 2,35 BRIGHT 15 "fO ": BEEP .03,5:
PRINT AT 2,35 BRIGHT 15 “GF ": BEEP .03,5: PAU
SE 25: PRINT AT 2,05“
7035 CLS : PRINT AT 0,65“D AM EATERS
7040 PRINT INK 6;AT 2,05“Can you prevent the
dam -from being broken by the dam eaters?"
7050 PRINT INK 5’ ’ "Release bombs -from any of
the 3 cannons above the dam with the ke
ys 1-3."
7060 PRINT INK 4’’“There are several more fe
atures which you will have to wait to find o
ut ! "
7070 PRINT INK 6’’“Press any key to start":
PAUSE 0.* CLS : RETURN
8000 DIM y(3): DIM x<3)
8010 LET sc=0: LET b-0
8020 LET n=l: LET c=0
8030 FOR i=1 TO 3: LET y<i)=INT <RND#20>+1: L
ET x ( i )=29: NEXT i
8499 RETURN
9000 FOR f-USR "a" TO USR "i"+7: READ g: POKE
f,g: NEXT f
9010 DATA 119,119,0,221,221,0,119,119,0,221,2
21,0,119,119,0,221,221,0,119,119,0,221,221,0
9020 DATA 0,255,171,0,0,171,255,0,28,39,255,2
55,255,255,0,0
9030 DATA 96,10,193,20,101,128,51,140,194,40,
67,24,130,40,67,16
9040 DATA 63,31,15,7,3,3,1,1
9060 DATA 2,196,40,23,232,16,231,24
Dam Eaters 159
9800 FOR -f=0 TO 20 STEP 3: PRINT INK 6; PAPE
R 2i AT -f , 2; “AAA" > AT 4 + 1,2 ! H BBB H i AT -f+2,2 i "CCC
“ : NEXT -f
9805 FOR 4=0 TO 20: PRINT INK 1J AT -f,0!
NEXT -f
9810 FOR 4=0 TO 31: PRINT AT 21,4} INK 15“1":
NEXT -f
9820 PRINT INK 3;AT 0,7}*H H H “
9830 PRINT AT 0,23i“Score:0“
9999 RETURN
160
Buzzy Bee
In Buzzy Bee you control a small bird which pecks away at the stems of a
row of plants which are gradually growing towards the top of the screen.
If any of the plants should reach the top a bee will drop down and take
the nectar and you have lost the game.
The bird can be moved from left to right by using the Z and X keys and
the M key will cause it to peck, although none of the stems can be
pecked twice in succession.
1 BORDER 0: PAPER 0: INK 7: CLS
6 CLS
7 GO SUB 9700
3 GO SUB 9000
10 LET hs=0
20 GO SUB 3000
50 POKE 23674,255: POKE 23673,255: POKE 236
72,255
100 PRINT FAPER 5;AT yl.xl;" “ ; AT yl + l,xl
» " "> INK 0 ;at y,x;bs;AT y+l,x;cs: LET yl=y
: LET x1=x
120 IF y(t)=4 THEN GO SUB 1000
430 LET g=g+<2 AND IN 65273=251 AND g<31>-(2
AND IN 65278=253 AND g>0)
500 PRINT AT -f 1 , g 1 ; INK 4; OVER l;"P“ ; AT -f , g
> 11/0,1 : LET -f 1 =-f: let gi=g
510 IF IN 32766=251 THEN GO SUB 2000
700 LET t=INT (RND*5)+i: LET y(t)=y(t)-1: IF
y < t)< h2 AND y(t) > h1 THEN LET h2=y(t): LET f
1 2 = t
710 IF yltXhl THEN LET hl=y<t): LET tll = t
750 PRINT INK t + 2;AT y (t) , t*6-5 j n M A'"; AT
y (t) +1 , t*6-5i “ “iAT y (t) +2, t*6-5; “<3 1 R " ;
INK 4;AT y(t)+3,t*6-5;" k ";AT y(t)+1,t*6-
3; ”0"
800 IF x<f11*6-4 THEN LET b$=a$(3): LET c$=
aS(4): LET x=x+l
820 IF x>f11*6-4 THEN
a$C 2) : LET x = x-l
999 GO TO 100
LET b$=a$Cl): LET c$=
BuzzyBee 161
1000 IF x=t#6-4 THEN GO TO 1500
1002 IF g=t*6-3 THEN PRINT INK 4; OVER 15AT
■f ,3i m P u
1005 FOR + =4 TO 17
1010 PRINT INK t + 2 ! AT +,t*6-5!" " ! AT -f + 1
, t*6-5;"/) /V'iAT + +2,t*6-5;“ "iAT ++3,t*
6-5; “O ■ /?"; INK 4; AT ++4,t*6-4;" U " ! AT -f+2,
t-X-6-3; "O"
1020 BEEP .04,+
1030 NEXT +
1035 LET +=21
1040 LET y < t)=18
1050 IF t=+li THEN LET +11=+12: LET hl=h2
1100 IF g=t*6-3 THEN PRINT INK 4; OVER 15 AT
+iS'
1300 RETURN
1500 IF b$=a*(11 THEN LET d = x + l
1502 IF b$=a*(3) THEN LET d=x
1503 LET t irne=INT <<65536*PEEK 23674+256*PEEK
23673+PEEK 236721/49)
1505 FOR 1=0 TO 3: FOR g=l TO 10
1510 BEEP .005,2: BEEP .005,5: PRINT AT i,d;
PAPER 5; INK 0;a$(1,2 TO ): BEEP .005,7: PRIN
T AT i,d 5 PAPER 5; INK 0;a$<3, TO 2)
1520 NEXT g
1530 PRINT AT i,xj PAPER 55" ";AT i+l,xj IN
K 0;b¥;AT i+2,x;c$
1540 NEXT i
1550 FOR +=1 TO 200: NEXT +
1560 CLS : PRINT AT 4,0; INK 6;"You survived
+ or 11 ; time;" seconds.”
1570 IF time >hs THEN LET hs=time: PRINT INK
5’’"Well done! That’s the longest recorded
time!": GO TO 1600
1580 PRINT ’ INK 5’"The longest recorded time
staridsat ";hs;" seconds."
1600 PRINT INK 7’’"Press any key to play aga
1610 IF INKEY*="" THEN GO TO 1610
1630 CLS : GO TO 20
2000 BEEP .01,20: IF g<>3 AND g<>9 AND g<>15
AND g< >21 AND g<>27 THEN RETURN
2005 IF g=u*6-3 OR y((g+3)/6)>15 THEN RETURN
162 BuzzyBee
2010 LET u=(g+3)/6
2020 LET y(u> =y(u)+2
2050 PRINT INK u+2;AT y<u)-2,u*6-5;" ";A
T y(u)- 1,u*6-5; ” “;AT y(u) ,u*6-5; N“ \
AT y < u) +1, u*6-5 j “ ” ; AT y (u ) +2, u*6-5 ; "<3 ■
/?"; INK 4j AT y <u> +3,u*6-4; " ■ ” ; AT y<u)+l,u*6
-3; "O"
2070 IF u=-f 11 THEN IF y<u)>h2 THEN LET hl=h
2: LET -f 1 l=-f 12: LET -f!2=u: LET h2=y(u)
2090 RETURN
8000 DIM y (5) : FOR i = l TO 5: LET y(-f)=18
8010 PRINT INK -f +2 j AT y < -f ) , -f *6-5 ; " fl N“ ;AT
y (-f ) + 1 , i *6-5; “ " ; AT y (i ) +2, -f*6-5 ; ”<3 K /?••-,
INK 4 ; AT y<-f)+3,-f*6-3; "■";AT y <-f ) +1, -f*6-3; "O
8020 NEXT -f
8100 FOR -f=0 TO 3: PRINT AT f,0; PAPER 5;"
”: NEXT i
8500 LET y=0: LET x=15
8510 LET -f = 21 : LET g=15
3520 DIM a$(4,3): LET a$(1)=" ABC ": LET a$(2)=
“D£F": LET a* < 3)= "GHI ": LET a$(4 )=“JKL ": LET
b$=a$(l): LET c$=a$(2l
8530 LET yl=y: LET xl = x: LET fl=-f: LET gl=g
8540 PRINT AT f,g; OVER 1; "P"
8550 LET hl=20: LET h2=20: LET -fll=2: LET i 12
= 4
8560 LET t=l
8570 LET u=10
8900 BEEP .5,0
8999 RETURN
9000 PRINT | ■ |i| h g ggg
■MB ■ ■■■■■■ ■«■■■■■ ■
■■■ BMtf MS It ■■■« M ■ ■ M ■ | ■ g ■
■ USB ■■■ ■■■ RUCK M BBB MBS ■■■"
9010 RANDOMIZE 100
9020 LET y=3: LET yl=8: FOR -f = i TO 29
9025 BEEP .01,-10
9030 PRINT AT yl,-f-lj" 11 ; AT y 1 +1 ,.-f- 1 5 *' ;
AT y, -f} "GHI "; AT y+i,-f;'V L «; INK 6; AT y+l,+ + i
.
9035 LET yl=y
9040 BEEP .01,-10
9050 IF RND >.5 THEN LET y=y+l-<2 AND RND>.5)
BuzzyBee 163
9.060 NEXT -f
9070 PRINT AT yl s -f-i;" ” ; AT yl+l,f-l;"
9030 PRINT INK 6;AT 6,6;" @ PAUL STANLEY"
9100 PRINT AT 8,0; INK 5!”A giant bee likes n
ectar -from giant -flowers, but you have to
stop it because you eat nectar as well!!"
9200 PRINT INK 6’ "Chop chunks out o-f the sta
Iks with M (but note that once a piece h
as been cut out o-f one stalk you must cut t
he next piece out of a different stalk)."
9300 PRINT ’"Move left with Z k right with X.
9400 PRINT INVERSE 1’"PRESS ANY KEY TO START
9500 IF INKEYS=”" THEN GO TO 9500
9600 CLS : RANDOMIZE : BORDER 5
9700 RESTORE : FOR x=USR "a" TO USR "r“+7
9710 READ n: POKE x,n
9720 NEXT x
9730 DATA 0,2,34,17,9,5,5,5,7,24,32,33,66,66,
68,69,123,124,226,34,34,66,130,12,7,13,25,63,
63,31,15,7,170,170,170,170
9740 DATA 170,170,170,170,240,243,252,254,252
,248,240,224,1,62,71,68,63,66,65,48,224,24,4,
132,66,66,34,162,0,64,63,136,144,160,160,160,
15,31,63,127
9750 DATA 63,31,15,7,35,85,85,35,85,85,85,85,
224,176,152,252,252,243,240,224,96,224,224,11
2, 120,60,30, 15,6,6,7, 15,30
9760 DATA 60,120,240,103,104,75,139,145,73,31
,255,220,220,72, 126,72,23,20,20,15,7,3,1,0,0,
0,0,240,224,192,128,0,0,0,0
9770 RETURN
164
Heli-Bomber
After all this intergalactic warfare, you’ll find it refreshing to return to
Earth and struggle to cope with a fleet of helicopters whose pilots are
committed to wiping out your fair city. Thankfully you’re in control of
the metropolitan laser tower, and it’s up to you to shoot down the bombs
before they hit the city. You’ll get points for every bomb you hit, and
whilst you can wipe out a chopper if you feel so inclined, you will not add
to your tally by so doing. You move your laser sight with the cursor keys,
and the game is over once one of the bombs finds a clear path to the
ground or the laser tower itself is destroyed.
1 REM HELI-BOMBER @ R.Erskine 1983
10 BORDER 0: PAPER 0: INK 7: CLS
20 LET sc=0: LET hs=0
30 PRINT AT 0,95"HELI-BOMBER": PRINT
40 PRINT : PRINT “Your city is under attack
by "helicopter bombers. When a bombhas a
clear path through to the ground or when your
laser tower is destroyed the game ends"
50 PRINT : PRINT “Move your laser sight usi
ng the arrow keys and try to shoot downthe bo
mbs using the 0 key"
60 PRINT : PRINT AT 20,05"Press any key to
start"
70 IF INKEY*="" THEN GO TO 70
80 GO SUB 2500
100 LET lin=lin+<2 AND INKEY*="6" AND lin<13
105 IF ATTR (21,151=0 THEN GO TO 3000
120 LET co1=co1 -(2 AND INKEY$="5">: IF col<0
THEN LET col=31
130 LET 1in=1in-<2 AND INKEYS="7" AND lin>0)
140 LET col=col+(2 AND INKEY$="8"l: IF col>3
1 THEN LET col=0
150 PRINT INK 4 ;AT ln,cl|" " 5 AT 1 in,co15" + "
: LET lr,= lin: LET cl=col
160 IF col 1=30 THEN LET coll=0: LET linl = IN
T (RND-X-101+1
161 LET 1inl=linl+(1 AND RND>.7 AND linl<13)
Heli-Bomber 165
170 LET linl=lini+(l AND RND>.7 AND linl<13)
180 LET linl=linl-(l AND RND>.7 AND linl>0)
190 LET coll=COl1+(1 AND coll<30>
200 PRINT INK 0; PAPER 05 AT lnl,clli" " 5 AT
lnl+l,clli* "5 PAPER 05 INK 5;AT linl,colli
“_";AT 1inl+1,colli U D£": LET lnl=linl: LET c
1 l = col 1
210 IF g=l AND RND>.8 THEN LET lin2=linl+2:
LET col2=co11: LET g=-g: LET ln2=linl+2: LET
c12=co12
215 IF g=l THEN GO TO 270
220 LET 1in2=1in2+l
250 PRINT INK 0; PAPER 0)AT In2,cl2i u "5 IN
K 7iAT 1 i n 2, c o 1 2 5 u F" LET In2=lin2: LET cl2=c
ol2: BEEP .01,-10: IF 1in2=21 THEN GO TO 300
0
260 IF ATTR (1in2+1,co12)=3 THEN PRINT PAP
ER 0j INK 0 i AT 1 i n2 , co 12; " 11 5 PAPER 7jAT lin2
+ 1,col2i "F "; PAPER 0!AT .. LET
g = -g
270 IF INKEYSK >"0 " THEN GO TO 100
280 LET x=122: LET y=42: PLOT INK 6ix,y
290 LET xx=col*8: LET yy=lin*8-172
300 LET yy=-yy
310 DRAW OVER li INK 6;xx-x,yy-y
320 IF ATTR (1inl + 1,col 1)=6 OR ATTR (linl + 1,
co11+1)=6 THEN LET h=-h
330 IF ATTR (1in2,co12)=6 THEN LET b=-b
340 PLOT OVER 1; INK 6jx,y: DRAW OVER lixx
-x,yy-y
350 IF b=-1 THEN GO SUB 380
360 IF h=-l THEN GO SUB 400
370 GO TO 100
380 FOR x=l TO 10: BEEP .05,x+15: PRINT FLA
SH 15 PAPER 2! INK 6;AT 1in2,co12 5 “*": NEXT x
390 PRINT INK 05 PAPER 0;AT lin2,col25" ":
LET sc=sc+10: LET g=-g:: LET b=-b: RETURN
400 FOR x — 1 ini TO 20
410 PRINT AT 1n1,c115" "5 AT lnl+l,cllS"
420 PRINT FLASH li PAPER 25 INK 6 5 AT linl,c
olli" “5 AT 1 inl + 1,coll; "D£ a
430 LET 1ni=lini: LET cll=coll: LET linl=lin
1 + 1
166 Heli-Bomber
440 BEEP .01,x
450 NEXT x
460 PRINT AT 1 i n 1 ,co11J " " ; AT 1in + 1,col 1;-
*: IF ATTR (21,15)=0 THEN GO TO 3000
470 LET 1 i n 1=0: LET coll=INT <RND*31)
430 LET h=-h
490 RETURN
2499 STOP
2500 RESTORE : FOR x = USR "a" TO USR u -f"+7
2510 READ n: POKE x,n
2520 NEXT x
2530 DATA 255,165,165,255,165,165,165,255,24,
126,126,126,60,24,24,255,129,195,165,153,153,
165,195,129,0,0,195,255,15,7,0,0,128,128,224,
152,252,248,0,0,195,195,36,24,24,36,195,195
2540 PRINT AT 0,4;"HELI-BOMBER"
2600 GO TO 9000
3000 PRINT INK 5;AT 10,10! "END OF GAME"j AT 1
2,7;“Your score was "isc: IF sc>hs THEN LET
hs = sc
3001 PRINT INK 5jAT 14,9;”High score “;hs
3005 FOR x=l TO 300: NEXT x
3010 PRINT AT 16,4;"Press any key to restart"
3020 IF INKEYS="" THEN GO TO 3020
3030 LET sc=0
3040 GO SUB 9000
3050 GO TO 100
9000 BORDER 0: PAPER 0: RANDOMIZE : INK 7: CL
S
9010 FOR x=0 TO 31
9020 LET r = INT (RND-X-5) + 1 + 16
9030 FOR y=r TO 21
9040 PRINT INK 3;AT y,xj",4"
9050 NEXT y
9060 NEXT x
9070 PRINT INK 6;AT 16,15; “B"
9080 FOR x=17 TO 21
9090 PRINT INK 6;AT x,155"C"
9100 NEXT x
9200 LET 1in=10: LET col=15: PRINT INK 6;AT
1in,coli"+"
9210 LET 1inl=0: LET coll=INT <RND*31): LET 1
n=1 in: LET cl=col
Heli-Bomber 167
9220 PRINT INK 0i PAPER 5!AT linl,colli"-"
PAPER 0; INK 55 AT 1i n 1 + 1,co115 " DE "
9225 LET lnl=linl: LET cll=coll
9230 LET g=i: LET h=i: LET b=l
9300 RETURN
168
Grand Prix
Grand Prix offers you a race-track, a worthy opponent (in the shape of
your micro’s car), and as much speed as you can handle. Unlike the
computer, you have a choice of gears (first or second), and its up to you
to select the type of course you want to compete on. If you crash you not
only lose points, but you are replaced on the track in a random position,
so you’ll have to sort yourself out pretty snappily if you want to get back
into the running.
1 REM **GRANDPRIX#*
2 BORDER 0 : PAPER 0: INK 7: CLS
5 DIM b*(3,15): DIM i<3): FOR -f = l TO 3: LE
T b*<*)=«": LET i(f)=0: NEXT i
6 GO SUB 3000
7 CLS
S INPUT "Enter skill (1-good to 4-bad) “is
k: IF sk <1 OR sk >4 THEN GO TO 8
9 INPUT "How many laps? “;laps: IF laps<l
THEN GO TO 9
10 INPUT "1-Hard Or 2-Easy Circuit? " Jc i : I
F ciOi AND c i < >2 THEN GO TO 10
15 GO SUB 9000
20 PRINT AT 2,17}"READY": BEEP .5,0: PRINT
AT 2,17}"STEADY": BEEP .5,5: PRINT AT 2,17}"
GO " : BEEP .2,10: PRINT AT 2,19}"
70 IF INKEY*="i" THEN LET g=l: BEEP .05,50
80 IF INKEY*="2" THEN LET g=2: BEEP .05,50
100 LET po=po+<INKEY*=“7" AND po<151)-<7 AND
INKEY*="7" AND po=151)-<INKEY*="6" AND po>14
4)+<7 AND INKEY*="6" AND po=144): IF x<5 THEN
LET c=1
105 FOR f=l TO g
110 LET y=y-(po>144 AND po<148)+(po>148): LE
T x=»x-(po<146 OR po=l51)+(po >146 AND po<150)
115 IF SCREEN* (y,x)=" H THEN LET y=yl: LET
x=xl: BEEP .02,-10: LET po=INT (RND*8)+144
120 PRINT OVER 1} INK 0}AT yl,xl}CHR* pol}
OVER l; INK 7}AT y,x}CHR* po
125 LET yl=y: LET xl=x: LET pol=po
Grand Prix 169
130 IF y=11 THEN IF x>27 THEN IF c=l THEN
BEEP .1,10: LET 11=11+1: PRINT AT 0,10;ll: L
ET C=0: IF 1l=laps+l THEN GO TO 5000
140 NEXT -f
150 LET cy=cy- <cpo>144 AND cpo< 148)+<cpo>148
); LET cx=cx- (cpo<146 OR cpo=151)+(cpo>146 AN
D c p □ < 1 50 >
152 IF SCREENS (cy,cx)=" M THEN BEEP .02,-20
: LET cy=cyl: LET cx=cxl: LET cpo=cpol
160 IF SCREENS <cy,cx)="- M THEN READ q: LET
cpa=cpo+q
165 IF cy=13 THEN IF cx=30 THEN RESTORE 94
00
170 PRINT OVER li INK 0iAT cyl,cxl;CHRS cpo
l; INK 3! OVER 1iAT cy,cx;CHRS cpo
175 LET cyl=cy: LET cxl=cx: LET cpol=cpo
200 IF cy=11 THEN IF cx=30 THEN LET 12=12+
l: BEEP .1,15: PRINT AT 0,30;12: IF 12=1aps+1
THEN GO TO 5000
500 GO TO 70
5000 FOR -f = l TO 40: BEEP .01,-f: NEXT i
5001 CLS
5002 LET sc=40/ci+60/sk
5005 IF cy=l1 AND cx=30 THEN LET sc=-sc
5007 LET sc=sc+<11-12)*2
5010 IF sc<0 THEN PRINT AT 2,0;"Bad Luck! Yo
u Were Beaten.“
5011 IF sc>0 THEN PRINT AT 2,01"Well Done! Y
ou Were The Winner."
5013 PRINT ’"Your Score Is "isc
5014 IF sc<i(3) THEN GO TO 5050
5015 PRINT INK 5 j AT 6,05 "Your Score Is Good
Enough To Be Included In The Top Scores.
Please Enter Your Name.": INPUT n$! IF LEN nS
>15 THEN GO TO 5015
5020 IF sc >i (1) THEN LET i<3J=i<2>: LET 1(2)
= i<1) : LET i<l)=sc: LET bS(3)=bS(2): LET bS<2
)=bS<1) : LET bS <1)=nS: GO TO 5050
5030 IF sc >i (2) THEN LET i(3)-i(2>: LET i(2)
=sc: LET bS(3)=bS(2): LET b*(2)=nS: GO TO 505
0
5040 LET i< 3)=sc: LET bS(3)=n*
5050 PRINT ’"These Are The Best Scores:": FOR
170 Grand Prix
-f = l TO 3: PRINT ’i ; ". . . ) ; TAB 23* i < -f ) :
NEXT -f
5060 PRINT ' INK 6’"Press Any Key To Play Aga
in.PAUSE 0: GO TO 6
8000 LET a$= *GRAND PRIX - BY PAUL STANLEY - "
8010 PRINT AT 2,0j“Steer Your Car Around The
Race- track And Try To Beat A Car Driven
By The Computer."
8020 PRINT INK 5’"Turn Left With ""6"" And R
ight With "“7"". You Can Select Gears Wit
h l(Slow) And 2<Fast). The Computer Will St
ay In First At A11 Times."
8030 PRINT INK 6’”1+ You Crash You Will Rest
art In A Random Direction, So You Must So
rt Yourse1 i Out As Fast As Possible."
8035 PRINT ’"Your Car Is The White One."
8040 PRINT INK 4’“PRESS ANY KEY TO CONTINUE.
8050 PRINT PAPER 2; INK 6;AT 0,0;A*;AT 21,0;
a$: LET A$=a*(2 TO 31)+a$(l): PAUSE 3: IF INK
EY*="" THEN GO TO 8050
8060 RETURN
9000 RESTORE 9005: FOR y=USR "a" TO USR "i"+7
: READ x: POKE y,x: NEXT y
9005 DATA 0,110,132,252,252,132,110,0,40,108,
240,53,223,76,24,8
9010 DATA 60,90,90,24,90,126,90,0,20,54,15,92
,251,50,24,16
9020 DATA 0,118,33,63,63,33,118,0,16,24,50,25
1,92,15,54,20
9030 DATA 0,90,126,90,24,90,90,60,8,24,76,223
,58,240,108,40
9040 DATA 60,66,189,165,165,189,66,60
9100 PRINT AT 1,0} INK 4;“ 11111111111111111
UIIIIIIIII II a
II III
IIIIIIIII II
II II
iiiiiiii i ii
9110 PRINT INK 4 ;"I
I II I
II I II
I II II II
I I
I III
III I III
i ii iiiiii i ii
i m
i ii
Grand Prix 171
ii i i i i ii min i
III II"
9120 PRINT INK 4;“II I II II
ii ii iii mu ii i
mu ii ii ii
ii ii ii
i ii ii ii mmmmi
i mmmmi"
9130 PRINT AT 11,27;"
9150 IF c i = 1 THEN PRINT INK 4 !AT 3,6}“II";A
T 4,5i “77"5 AT 8,2;"/";AT 9,2; “II ";AT 17,3;“/"
;AT I3,3i u / U ;AT 8,18; "1 “;AT 13,28;“J"
9190 DATA 3,9,3,24,6,5,6,6,7,4,8,4,9,5,9,6,9,
15,9,16,9,30,11,8,11,18,12,12,13,8,14,30,15,5
,15,6,15,18,16,4,17,4,17,12,17,20,17,27,18,5,
18, 11
9200 DATA 3,8,3,25,6,4,6,5,7,3,8,3,8,30,9,4,9
,5,9,16,9,17,10,18,12,8,12,13,13,8,13,18,13,3
0,15,5,15,6,16,4,16,13,17,4,17,22,17,26,18,5,
18 , 11
9210 DATA 2,12,2,26,5,3,5,9,6,30,7,1,7,17,7,1
8,8,19,9,1,10,2,10,7,10,14,12,9,15,9,15,30,16
,3,16,8,16,14,16,19,17,2,18,2,19,3,19,11,20,2
3,20,25
9220 DATA 2,6,2,27,4,2,4,4,5, 1,5,30, 7, 16,7, 18
,9,20,9,1,9,14,10,2,10,7,13,10,14,10,16,30,16
, 3 , 16,8,17,14,17,20,18,1,19,1,19,22,19,27,20,
2 , 20,11
9290 RESTORE 9180+sk*10
9300 FOR 1=1 TO 26: READ y,x: PRINT INK 0;AT
y,x; : NEXT 1
9350 RESTORE 9400
9370 LET 1=-1
9400 DATA 1,1,7,-7,7,1,1,1,-1,-1,-1,-7,7,1,1,
1 , 1 , 1 , - 1 ,- 1 ,- 1 ,- 1 , 1 , 1 , 1 , 1
9500 LET po=146: LET cpo=146
9510 LET y=10: LET x=28: LET cy=y: LET cx=30
9520 LET yl=y: LET xl=x: LET pol=po
9522 LET cyl=cy: LET cxl=cx: LET cpol=cpo
9528 LET 11=1: LET 12=11
9529 LET g=l: LET c=0
9530 PRINT AT y,x; OVER 15CHR* po!" '5 INK 35
CHR$ cpo
772 Grand Prix
9540 PRINT AT 0 , 0 ; "YOUR LAPS:";LI;" COMPUTE
R’S LAPS:-;L2
9600 RETURN
173
Giant Rats
The object of Giant Rats is to direct a man through a maze to reach the
girl, whilst being pursued by a killer rat. You have a displayed time limit
in which to move before the girl mutates - and if you are unlucky she will
unpredictably change places with the rat! If the rat should reach the girl
first, she will disappear altogether. At the beginning of the game you are
shown the positions of up to four randomly placed mines which you must
try to memorise since they will remain invisible for the remainder of the
game.
1 RANDOMIZE : BORDER 0: PAPER 0: INK 7: CL
S
5 LET hs=0
10 GO SUB 9000
50 GO SUB 5000
70 LET sc=0
80 LET 1 i =>5
100 FOR -f =0 TO 30: PRINT INK A; PAPER 7; AT
0,-f ; "<S" ; AT 20,-f ; "G“ : NEXT i: FOR -f*=l TO 19: P
RINT INK 4; PAPER 7;AT -f , 0\ "G ” 5 AT f , 3 0i u G“:
NEXT i
103 GO SUB 2000
107 FOR i=1 TO 30: PRINT AT INT <RND#10)*2,I
NT (RND*15)*2; PAPER 7J INK 4 5 "6“: NEXT i
110 LET sc=sc-1: LET y=l: LET x=y: LET -f = 19:
LET g=29: LET a *=“C U
115 PRINT AT 21,5;"HI-SC:";hs;AT 21,16;"LI:"
J 1i5 AT 21,23; "SCORE:0"
120 LET b$= “713" : LET c = l
130 GO SUB 1500
200 FOR i=1 TO 2
201 LET c=c-1: PRINT AT 21,0;c; M ": IF c=0 T
HEN GO TO 3500
205 IF RND>.97 THEN GO SUB 1600
210 PRINT AT y,x;" "
220 IF INKEY$="8" THEN IF ATTR (y,x+l)<>60
THEN LET x=x+l
230 IF INKEY$= "5" THEN IF ATTR <y,x-l)<>60
THEN LET x=x-l
174 Giant Rats
240 IF I NKEY$=" 7 11 THEN IF ATTR <y-l,x)<>60
THEN LET y=y-l
250 IF INKEY$="6 U THEN IF ATTR (y+l,x)<>60
THEN LET'y=y+1
255 IF ATTR <y,x)>128 THEN GO SUB 1500
257 IF (x=b(1) AND y=a(1)) OR (x=b(2) AND y=
a<2)) OR < x=b < 3) AND y=a(3)) OR <x=b<4) AND y
=a<4)) THEN GO TO 3000
260 PRINT INK 6JAT y,x;b*(i): GO SUB 1000
270 NEXT i
280 GO TO 200
1000 LET il=i: LET gl=g
1010 IF -f < y THEN LET a$="/^": LET -f=-f + .5
1020 IF -f >y THEN LET a*="£ u : LET -f=-f-.5
1030 IF g< x THEN LET aLET g=g+.5
1040 IF g > x THEN LET.a** "C" : LET g=g-.5
1050 PRINT INK 3 > AT Tl,gl;.AT + , g i a*
1060 IF ATTR < y, x )=3 THEN GO TO 3100
1070 PRINT AT INT <RND*10)#2,INT (RND*15)#2!
PAPER 7; INK 4;‘ , £3 ,,
1100 RETURN
1500 LET sc=sc+l: PRINT AT 21,29}sc
1501 FOR 1=1 TO 5: BEEP .01,1*5: NEXT 1
1502 LET c=50
1505 LET q=INT (RND*10)*2+1: LET w=INT (RND*1
5)*2+1: PRINT PAPER 6j FLASH 1; INK 2;AT q,w
!
1510 RETURN
1600 PRINT AT q,w; u -: LET l=q: LET m=w: LET
11-T: LET ml=g: LET -f = l: LET g=m: LET q=H- L
ET w=ml
1605 PRINT AT q,wi PAPER 6{ INK 2; FLASH 1}"/V
1606 LET t=l
1610 RETURN
2000 DIM a<4): DIM b(4)
2010 FOR i=1 TO 4: LET a(i)=INT (RND*10)*2+1:
LET b(i)=INT <RND*15)*2+1: NEXT i
2020 FOR i=7 TO 0 STEP -1: FOR 1=1 TO 4: PRIN
T INK i i AT a (.1) , b (1) j »■“ : BEEP . 01 , 1 * 1 : BEEP
.01,-1*1: NEXT l: NEXT 1
2030 RETURN
3000 FOR 1=1 TO 3: FOR 1=7 TO 0 STEP -1: PRIN
Giant Rats 175
T AT y,xi INK i5"<4": BEEP .05,1*8: NEXT i: NE
XT 1
3010 GO TO 3600
3100 FOR 1=1 TO 3: FOR i=7 TO 0 STEP -1: PRIN
T AT y,x J INK iJ "^: BEEP NEXT 1: NE
XT 1
3120 GO TO 3600
3500 FOR 1=1 TO 15: FOR i=l TO 3: BEEP .02,1*
i: PRINT AT q,wj INK RND*7;"/V": NEXT i: NEXT
1
3600 PRINT AT y , x ; “ " J AT i , g i " “ i AT q,wj“ "
4000 LET li=li-l: IF 1i>0 THEN BEEP .3,0: GO
TO 110
4002 CLS : FOR -f=0 TO 20: BEEP .02,-f: NEXT +:
PRINT ’’“You scored "isci " po i n t 11 5 < " s " AND s
c < > 1) 5 " . "
4010 IF sc > hs THEN LET hs=sc: PRINT INK 4’’
“WELL DONE! A NEW HIGH-SCORE!": GO SUB 9100
4015 PRINT INK 5’’"The high-score is "ihs
4018 PRINT ’ INK 6’ FLASH 15"PRESS ANY KEY TO
PLAY AGAIN"
4019 IF INKEY*="" THEN GO TO 4019
4020 CLS : GO TO 70
5000 PRINT FLASH 15" CM£U£’T/ C ACNZ?
T £
5010 PRINT FLASH l’“ CRD(\£J£S
C
5030 FOR y=0 TO 2 STEP 2: FOR i=0 TO 31
5035 BEEP .04,RND*40
5040 IF SCREEN* <y,i)<>"■" AND SCREEN* <y,i)<
>"" THEN PRINT AT y,i5 BRIGHT 1! INK 25 PAPE
R 75 SCREEN* (y,i)
5050 NEXT i: NEXT y
5055 PRINT ’" @ P a u 1 Stanley"
5060 PRINT '’"The giant rat is out to get you
!You must try and reach the girl before she m
utates (a timer at the bottom o* the screen
counts this down)."
5070 PRINT INK 5’’"However she might be a mu
tant herself and change places with the ra
t unpredictab 1y. Also she might disappear tot
ally (i* she meets the rat, she will)."
5075 PRINT ’’‘Press any key...": PAUSE 0: CLS
176 Giant Rats
5080 PRINT INK 6’’"And that’s not all! When
you start, up to 4 mines will be shown
in random positions. These positions mus
t be noted, -for i-f you land on one, you
will be destroyed!"
5085 PRINT INK 4’’"Move with 5-8"
5090 PRINT INK 4; INVERSE 1”“ PRESS ANY
KEY TO START. ": PAUSE 0: CLS : RETURN
9000 RESTORE 9010: FOR y=USR "a" TO USR "h"+7
: READ x: POKE y,x: NEXT y
9010 DATA 23,93,73,62,8,23,34,65,28,23,3,127,
8,28, 20,20
9020 DATA 7,1,33,57,93,255,36,108,240,128,132
,156,186,255,36,54
9030 DATA 8,28,62,28,28,63,61,7,15,57,255,124
,254,84,56,16
9040 DATA 255,129,189,165,165,189,129,255,28,
28,73,62,28,62,20,54
9050 RETURN
9100 LET g=.3: RESTORE 9200: FOR T=1 TO 23: R
EAD y,x: BEEP y,x: NEXT -f: RETURN
9200 DATA g , 7, g, 9, . 6, 7, g, 7, g, 9, . 6,7, g, 12, g , 11
.S.9,g,7, 1.2,9, g, 11, g, 9, g, 7, g, 5^*4,’g[ 5, ! 6^7,
9>2,g,5,g,4,g,2, 1.2,0
177
Postman
In Postman you have a limited time in which to collect a letter from a post
box and deliver it to the house without being caught by the dog. The
number of post boxes can be varied for each game and letters must be
collected from the one which is currently flashing.
1 BORDER 7: PAPER 7: INK 0i CLS
2 REM @ Postman-Paul Stanley
5 LET hs=0
7 GO SUB 9000
10 GO SUB 5500
20 GO SUB 7000
60 GO SUB 5000
70 BEEP .1,0
80 FOR i=1 TO 2
100 IF INKEY*="5" THEN IF X>1 AND ATTR <y,x
-1)058 AND ATTR (y + 1, x - 1 ) < >58 THEN LET a*= "
£F a \ LET b*<l)=" G"\ LET b$(2)=“ H* : LET x=x-
1
110 IF I NKEY$=" 8 11 THEN IF x<29 AND ATTR (y,
X+2J058 AND ATTR ( y +1, x +2 ) < >58 THEN LET a$=
"TIB": LET b$<l)= ,, C”: LET b$<2)="Z7": LET x = x + l
120 IF INKEY35="7" THEN IF y>l AND ATTR (y-i
, x)< >58 AND ATTR (y-1,x + 1)< >58 THEN LET a*="
7 LET b¥ < 1) = "7 U : LET b$<2> = "/'7 H : LET y>=y-l
130 IF INKEY«="6" THEN IF y<17 AND ATTR <y +
2 , x)< >58 AND ATTR <y + 2,x+1)< >58 THEN LET a$=
“A- LET b*(l)=V" : LET b*(2)=b*<l): LET y=y
+ 1
1*40 PRINT AT y 1, x 1 i " " i AT yl + i,xl5" “5 INK
1;AT y,xja$;AT y+l,x;b«(i): LET yl=y: LET xl
200 IF let THEN IF x=hx OR x=hx-l THEN IF
y=hy THEN FOR f = l TO 10: BEEP .01,-f: NEXT il
LET sc=sc+o: PRINT AT 21,7;sc: GO SUB 5000
250 IF NOT let THEN IF x=px OR x+l=px THEN
IF y=py THEN LET let=l: BEEP .06,20: LET sc
=sc+10: PRINT AT 21,7;sc: LET o=FN a<)
300 NEXT i
178 Postman
500 LET dy=dy+<dy<y+1)-<dy>y+1 )
510 IF dx< x THEN LET dx=dx + l: LET d$="/V M
530 IF dx >x THEN LET dx=dx-l: LET d*="<?**
580 IF ATTR <dy,dx)=58 OR ATTR (dy,dx)=158 0
R ATTR (dy,dx)=59 THEN LET u=dx: LET dx=dx+(
dx<x)-(dx>x): IF dx=u THEN LET dx=dx+l
800 PRINT INK 3; AT hy,hxi"S‘"; INK 0;AT dyl,
dxl; u "JAT d y , d x j d S
810 LET dy1= dy: LET dxl=dx: LET t = t-l: PRINT
AT 21,27iti" ": IF t=0 THEN GO TO 8000
850 IF dx = x OR dx = x +1 THEN IF dy=y OR dy = y +
1 THEN GO SUB 6000
999 GO TO 80
5000 PRINT INK 2; AT py, px J "P" ; AT py + 1, px J "tf"
5003 LET -f = INT <RND*lb)+l
5005 LET let =0
5010 PRINT INK 65 PAPER 3; FLASH 1 i AT y(-f),x
(-f ) ! * P• i AT y <-f ) +1, x <-f ) j "<J“
5020 LET py=y(-f): LET px = x(-f)
5030 LET hx=INT (RND*i4)*2+1: LET hy=INT (RND
*9)*2+1
5040 IF ATTR <hy,hx)=58 OR ATTR <hy,hx)=158 T
HEN GO TO 5030
5050 PRINT INK 3jAT hy,hx;"S'"
5100 RETURN
5500 INPUT "How many post boxes would you 1
ike there to be? (Any number between 1 and
36) "jib
5790 IF 1b<1 OR 1b >36 THEN GO TO 5780
5800 RETURN
6000 FOR -f = l TO 12: BEEP .07,-f: PRINT AT y,x;
INK 1 ; “ AB “SAT y + 1, x | 11 C “
6010 BEEP .05, -f: PRINT INK 1;AT y,x5"/ w »AT
y+1,x; -J-
6020 BEEP .07,-f: PRINT INK 1J AT y, x j u £F" j AT
y+ 1,x t“ 6"
6030 BEEP .05, i: PRINT INK 1JAT y,xi“A “JAT
y+1,x |“l "
6040 NEXT -f
6050 PRINT AT y,xj“ " JAT y+l,x|“ "JAT hy,hx
. « „
6060 LET t=t-50: IF t<=0 THEN GO TO 8000
6070 PRINT AT 21,27jtj"
Postman 179
6060 LET y=17: LET x=28: LET yl=y: LET xl = x
6090 LET dy=i: LET dx = l: LET dyl=dy: LET dxl=
dx
6100 GO TO 60
7000 FOR + =0 TO 19: PRINT INK 4jAT -f , 05 "/?" i A
T +,315 "Jf“ : NEXT -f
7010 FOR -f = l TO 30: PRINT INK 4i AT 0, + 5 u /?" |A
T 19, -f ; “/?“ : NEXT -f
7060 DIM y(1b): DIM x(lb)
7100 FOR f=l TO lb
7110 LET y=INT (RND*4>*4+3: LET x=INT <RND*9)
*3 + 3
7120 IF ATTR <y,x)=58 OR ATTR <y+l,x)*58 THEN
60 TO 7110
7125 LET y(+)=y: LET x<+)=x
7130 PRINT INK 2 5 AT y, x 5 " P“ 5 AT y+ 1, x 5 “<3“ : NE
XT +
7800 LET y= 17: LET x=28: LET yl*»y: LET xl = x
7810 DIM b$(2,2): LET a^“£P": LET b$(l)=" <S “
: LET b$<2>=" H"
7840 LET sc=0! LET t=300: PRINT AT 21,l5 u SCOR
E: "5 sc 5 AT 21,225 "TIME:"5t
7850 LET 1et=0: LET py*y(lb): LET px=x(lb)
7900 LET dy=l: LET dx=l: LET d$="/V”
7910 LET dyl=dy: LET dxl=dx
7950 DEF FN a()=INT (SQR <ABS (hy-py)^2+ABS <
hx-px)~2>)
7999 RETURN
8000 FOR + = 1 TO 40: BEEP‘.01, + : NEXT -f
8005 CLS : PRINT INK 4’ ’"You have run out o+
time. “
8010 PRINT INK 3’’“You scored "isc5" points.
8020 IF sc > hs THEN LET hs=sc: PRINT INK 2’’
“Well done that’s a new high score!! Pie
ase ENTER your name.": INPUT h$: 60 TO 8
035
8030 PRINT INK 2’’"The high-score is "5hsi“
points"’"by Postman “5h$
8035 FOR f=l TO 50: NEXT i
8040 PRINT INK 5’’“Press any key to play aga
in...”
8050 IF INKEY*=""
THEN 60 TO 8050
180 Postman
8060 CLS : GO TO 10
9000 RESTORE 9010: FOR -f=USR "a" TO USR "s"+7
: READ g: POKE -f , g: NEXT -f
9010 DATA 120,126,236,231,255,255,124,56,0,0,
0,254,255,254,0,0
9020 DATA 56,127,184,184,40,72,136,76,56,254,
185,56,40,37,34,48
9030 DATA 0,0,0,127,255,127,0,0,30,126,55,231
,255,255,62,28
9040 DATA 28,127,157,28,20,164,68,12,28,254,2
9,29,20,18,17,50
9050 DATA 16,56,56,56,56,56,56,56,124,254,124
,56,126,184,40,32
9060 DATA 28,62,91,73,62,62,93,157,28,28,28,2
8 , 8 , 0 , 0,0
9070 DATA 124,254,124,56,252,58,40,8,8,14,139
,142,252,124,68,68
9080 DATA 32,112,209,113,63,62,34,34,60,126,2
55,126,66,126,126,126,102,102,102,126,126, 126
,126,255
9090 DATA 126,195,189,165,165,189,195,126,32,
126,255,126,86,86,126,126
9200 PRINT INK 2j ” AB POSTMAN
£f m ' u c H”
9250 PRINT •" @ Paul Stanley”
9300 PRINT INK 1* ’"First collect a letter -fr
om the -flashing post-box. Then deliver it to
the little purple house."
9400 PRINT ’’"You have limited time, and if
you are attacked by the dog, you will los
e time."
9500 PRINT INK 3’ ’"Move with 5-8."
9600 PRINT ’’"Press any key to start....."
9700 IF INKEY*=”” THEN BEEP .01,20: PAUSE 10
: GO TO 9700
9999 CLS : RETURN
181
Xmas Eve
Xmas Eve is a race against time for Santa, who must rush to deliver
presents before the inhabitants of the houses awake.
By manoeuvering Santa’s sleigh left and right you can catch the presents
as they are thrown down from above by the elves. Presents can then be
dropped down the chimneys by pressing the M key. Each time a present
is successfully delivered, the inhabitants of the house awake and switch
on the lights, which causes the snow on the roof to melt at a rate
proportional to the activity in the house. The more work Santa does the
more he has to hurry, in order to complete his work without being seen.
1 PAPER 1: INK 7: BORDER 1: CLS
2 REM ********************
3 REM ** S PAUL STANLEY **
A REM ********************
5 GO SUB 8000
7 LET hs=0
10 GO SUB 9000
15 LET sk=.98: LET s=0
20 LET a*= "A n : LET b*="£": LET c*="C u l LET
x=27
21 DIM d*<28)
25 LET 9=1: LET h=INT <RND*28)+2
26 PRINT AT 0,18;"HIGH-SCORE:"Jhs
27 LET p=0
28 PRINT AT 0,0; “PRESENTS: M ;s
30 IF INKEY*= u x" THEN LET x = x+(2 AND x<27)
: LET a*="D": LET b*=“r": LET
35 IF INKEY*="z" THEN LET x=x-<2 AND x>l):
LET a*= H 4": LET b$= ,, £" : LET c*= H C"
40 PRINT AT 10,x-2»" ”jAT 10,X5 INK 2
;a*; INK 0;b*; INK 2;c*;
50 IF NOT p THEN LET 9=9+1: PRINT AT g-l,h
5“ •|AT 9,h; INK 6}“6": IF g=10 THEN IF h=x+
2 OR h=x+l OR h=x THEN LET p-1
60 IF g=12 THEN IF SCREEN* (g+1,h)*":" THE
N GO TO 1000
65 IF g=12 THEN PRINT AT 12,h5 ” ": LET g=l
182 Xmas Eve
: LET h=»INT <RND*28)+2
70 IF p THEN IF INKEY*="m" THEN LET g= 10 :
LET h=x-l+ (a*="D “)+(3 AND c*="C"): LET p=0
80 IF RND >sk THEN LET q=INT <RND*7>+1: LET
e=INT <RND*4): PRINT PAPER 3;AT 16,q*4-e+l;
LET d*<q*4-e)="p": IF d*(q*4-3 TO q*4)="
PPPP" THEN GO TO 2000
90 GO TO 30
1000 PRINT AT 12, h; 11 "
1010 IF SCREEN* <18,h)*"_“ THEN GO TO 25
1015 LET s=s+1: PRINT AT 0,0PRESENTS:";s
1020 PRINT AT 18,hj INK 0J PAPER 6 ;" »;AT 19
, h J “_“
1022 FOR -f = l TO 3: BEEP .001,30: NEXT -f
1025 FOR i =4 TO 28 STEP 4: IF SCREEN* (18,f)-
THEN NEXT -f: LET sk=sk-.02: CLS : GO SUB
9030: GO TO 20
1030 GO TO 25
2000 IF SCREEN* <18,q*4)<>“_" THEN GO TO 600
2010 GO TO 30
5000 RESTORE 5100: LET z=.3: LET c«. 6 : FOR f«
1 TO 26: READ a,b: BEEP a,b: NEXT -f
5100 DATA Z|6 jZj6jCj6jZj6|Zj6jCj6 z 6 z 9 z 2
,z,4,l,6,z,6,z,7,z,7,z,7,z,7,z,7,z,6,z,6,z,6,
z,9,z,9,z,7,z,4,c,2,c,2
5200 RETURN
6000 FOR f =10 TO 1 STEP -.5: PRINT AT i,x} IN
K 2;a*; INK 0Jb*J INK 2;c*5 AT f + 1 ,x 5 " “ ; BE
EP .005,2*-f: NEXT -f
6002 IF s > h 5 THEN LET hs = s
6005 PRINT AT 1,x;"
6006 PRINT AT g,h;“ •
6010 PRINT FLASH 1jAT 18,q*4-lj INK 0 ; PAPER
6 !*_"I AT 19,q*4-l; "A_“
6030 PRINT AT 8,85 FLASH 15"G A M E 0 V E R"
6045 GO SUB 5000
6050 PRINT AT 11,2; FLASH 15"PRESS ANY KEY TO
PLAY AGAIN"
6060 IF INKEY*<>“" THEN CLS : GO TO 10
6070 GO TO 6060
8000 PRINT INVERSE 1;AT 5,0;" CHRIST
MAS EVE INVERSE 0 ’’" @ p M
Xmas Eve 183
L STANLEY": PAUSE 250: CLS
8010 PRINT ’"It is approaching midnight on
Christmas eve and Santa is late.YDU play the
part o-f Santa and you must deliver presents
which are thrown down to you by your elves.
Having caught a present (by -flying directly
below it) you must move over a chimney a
nd drop a present down it."
8020 PRINT ’"When a present-has been dropped
down a chimney the -family in that house im
mediately start work on opening up the pre
sent and they will turn the light on.Droppin
g another present down a chimney o-f a lit h
ouse will not count."
8030 PRINT ’ INVERSE 15"PRESS ANY KEY TO SEE
MORE.": PAUSE 0
8040 CLS : PRINT "Beneath each roof you will
see a patch o-f snow which melts as time ela
pses. This melts at a rate which is proport
ional to the activity in the house."
8050 PRINT ’"As the presents must be placed
down the chimneys before anyone sees you, i-f
all the snow has melted under a particular
roof without a present being dropped before
this occurs it will indicate that the in
habitants are awake and you will have to r
eturn immediately."
8060 PRINT ’ “ Z-LEFT
X-RIGHT M-
--DROP PRESENT"
8070 PRINT ’ INVERSE 15" PRESS ANY KEY TO
START ": PAUSE 0: CLS : RETURN
9000 RESTORE 9010: FOR y=USR "a" TO USR "k"+7
: READ x: POKE y,x: NEXT y
9010 DATA 0,0,1,0,0,0,0,0 '
9020 DATA 192,64,160,224,127,126,99,82
9030 DATA 8,28,8,124,156,72,63,128
9040 DATA 16,56,16,62,56,18,252,1
9050 DATA 3,2,5,7,254,126,198,74
9060 DATA 0,0,128,0,0,0,0,0
9070 DATA 0,0,0,54,54,0,54,54
9080 DATA 0,1,3,7,15,31,63,127
9090 DATA 0,128,192,224,240,248,252,254
184 Xmas Eve
9100 DATA 255,220,73,65,64,0,0,0
9110 DATA 24,60,BIN 01010110,60,24,126,255,25
5
9300 FOR x = 2 TO 26 STEP 4
9310 PRINT INK 3;AT 13,x+lJ":"i PAPER 3j INK
5 ! AT 14, x + 1 ; “/V u i PAPER 15"7 M ;AT 15, x ; " HWMI “ l
INK 7j PAPER 3|AT 16,x;;AT 17,x; PAPER
l; INK 3; ; AT 18,xj"B 1";AT lP.x;''! ■
“I AT 20,x;"■■■■"iAT 21,xi" ■■■■ “
9320 NEXT x
9400 FOR x=48 TO 208 STEP 32: OVER 1: INK 3:
PLOT x,0: DRAW 0,39: NEXT x: INK 7: OVER 0
9450 FOR x=24 TO 216 STEP 32: PLOT x,23: DRAW
15,0: NEXT x
9500 RETURN
185
Morse Tutor
This has to be the definitive Morse code tutor. It’s got everything you
could possible require to painlessly acquaint yourself with the code, and
then to go on and practice until you reach professional speeds. The
program offers you a comprehensive menu with a full listing of letters
and numbers (in both text and Morse), a facility to convert your own
messages into the code and a challenging tester section. You also have
the opportunity to adjust the speed of the code to suit your own abilities.
What more could you ask for?
10 POKE 23658,255: REM -force upper case inp
ut
20 REM Morse Tutor <3 Robert Erskine 1983
40 GO SUB 8500
100 PAFER l: INK 5: BORDER 1: CLS
110 PRINT AT 1,11;"OPTIONS"
120 PRINT
140 PRINT "1 Print a message": PRINT
150 PRINT "2 Message with sound only": PRINT
160 PRINT "3 Create your own message": PRINT
170 PRINT “4 Test section": PRINT
180 PRINT "5 Change speed": PRINT
190 PRINT "6 The Morse Code": PRINT
210 IF INKEY$="1" THEN GO TO 2005
220 IF INKEY$= 11 2" THEN GO TO 2000
230 IF INKEY$=”3" THEN GO TO 2030
240 IF INKEY$="4" THEN GO TO 5000
250 IF INKEY*="5" THEN GO TO 6000
260 IF INKEY*="6" THEN GO TO 7000
290 GO TO 210
1000 LET x$=v$: LET v$=q*+v$+h$
1010 FOR x = l TO LEN v*-32
1020 IF 0=0 THEN PRINT AT 21,0;v*(x TO x+31)
1025 LET T=C0DE v*(x+31)
1030 FOR y= 1 TO 5
1040 IF T>64 THEN BEEP ciCODE <v*(x + 31) )-64„
y) ,25
186 Morse Tutor
1042 IF T<58 AND T>47 THEN BEEP c(CODE < v* < x
+31))-21,y),25
1045 NEXT y
1046 PAUSE 3
1050 NEXT x
1999 GO Tb 2110
2000 LET 0=1
2005 LET v*=-f$
2010 GO TO 1000
2020 GO TO 100
2030 CLS : PRINT AT 2,7;"CREATE A MESSAGE”
2040 PRINT “Enter your own message at the
bottom o-f the screen and then "("press the EN
TER key. 11
2050 INPUT v*
2060 CLS : PRINT "Do you want the message dis
played in both sound and ‘vision? (V or N)"
2065 PAUSE 100
2070 IF INKEY$="” THEN GO TO 2070
2080 IF INKEY$=”Y" THEN GO TO 2100
2090 LET 0=1
2100 GO TO 1000
2110 LET 0=0
2140 LET f*=x$
2150 GO TO 100
5000 CLS : PRINT AT 1,10;"TEST SECTION”
5010 PRINT
5020 INPUT “Do you want to be tested on chara
cters (1) code (2) or sound (3)?”;A$
5030 IF A*="l” THEN LET W=1
5040 IF A$=”2" THEN LET W=2
5050 IF A$="3" THEN LET W=3
5055 IF CODE A3K49 OR CODE A*>51 THEN GO TO
5020
5060 INPUT "Do you want testing on letters (1
) or numbers <2)?";A*
5090 IF AS="1" THEN LET B=1
5100 IF A$=“2" THEN LET B=2
5105 IF CODE A$<49 OR CODE A*>50 THEN GO TO
5060
5110 IF W>1 THEN GO TO 5250
5115 PAUSE 50
5120 PRINT "The character will appear first,
Morse Tutor 187
■followed shortly by the code and sound": PAUS
E 100
5130 FOR x = l TO 15
51*40 IF B= 1 THEN LET v=INT <RND*26>+1
5150 IF B=2 THEN LET v=(INT (RND*10)+1)+26
5160 IF B=1 THEN PRINT CHR* (v+64)5
5170 IF B=2 THEN PRINT CHR* <V+21)J
5180 PAUSE 50
5190 FOR y=l TO 5
5200 BEEP c<v, y),25
5210 NEXT y
5220 PRINT “ = "5 c*(v)
5230 NEXT x
5240 PAUSE 50: 60 TO 100
5250 IF W>2 THEN GO TO 5390
5260 PRINT “The code will appear first, folio
wed shortly by the character and sound”: PAUS
E 100
5270 FOR x=l TO 15
5280 IF B=1 THEN LET v=INT <RND#26)+1
5290 IF B=2 THEN LET v=(INT <RND*10)+1)+26
5300 PRINT c*(v)i: PAUSE 50
5310 FOR y=l TO 5
5320 BEEP c <v,y) ,25
5330 NEXT y
5340 PRINT “ = "!
5350 IF B=1 THEN PRINT CHR* <v+64)
5360 IF B=2 THEN PRINT CHR* (v+21)
5370 NEXT x
5380 PAUSE 50: GO TO 100
5390 PRINT “The sound will be heard first, fo
1 lowed shortly by the character and code": PA
USE 100
5400 FOR x-1 TO 15
5410 IF B= 1 THEN LET v=INT (RND*26) +1
5420 IF B=2 THEN LET v=(INT (RND*10)+1)+26
5430 FOR y=l TO 5
5440 BEEP c < v,y) ,25
5450 NEXT y
5460 PAUSE 50
5470 PRINT “That was "i
5480 IF B=1 THEN PRINT CHR* (v+64)5" = "5c*(
188 Morse Tutor
5490 IF B=2 THEN PRINT CHR* <v+21)5" = “ 5 c$ (
v) ,
5500 PAUSE 50
5510 NEXT x
5520 PAUSE 50: GO TO 100
6000 CLS : PRINT AT 1,6;".ALTER SPEED OF CODE"
: PRINT
6010 PRINT "Enter a multiplication -factor to
alter the speed o-f the morse. V a lues less th
an 1 will increase the speed"
6020 INPUT A
6030 IF A>9 THEN GO TO 6020
6040 PRINT "Please wait": LET s=s*A: LET 1=1*
A: GO SUB 9000
6050 GO TO 100
7000 CLS : PRINT AT 0,7;"THE MORSE CODE": PRI
NT
7010 FOR X=i TO 36
7020 IF X< 27 THEN PRINT CHR$ (X + 64);" = ";C*
(X) ,
7030 IF X >26 THEN PRINT CHR$ <X + 21)5“ = "!CS
(X) ,
7040 NEXT X
7050 PRINT : PRINT AT 21,0;"PRESS ANY KEY TO
RETURN"
7060 PAUSE 0
7070 GO TO 100
8500 LET s=.1: LET 1=.3: LET 0=0: LET x$="“
8510 LET -f*="THIS IS A MESSAGE TO DEMONSTRATE
THE MORSE CODE TUTOR THE COMPLETE ALPHABE
T IS AS FOLLOWS ABCDEFGHIJKLMNOPQRSTUVW
XY2 AND THE NUMBERS ARE 1234567890
8520 LET q*="
8530 LET h*=" "
9000 RESTORE : DIM c<36,5)
9010 FOR x =1 TO 36
9020 FOR y=l TO 5
9030 READ c <x,y)
9040 NEXT y
9050 NEXT x
9060 DATA s,1,0,0,0, 1 ,s,s,s,0, 1 ,s,1,s,0,1,s,s
,0,0,S,0,0,0,0,5,S,1,S,0,1,1,S,0,0,S,S,S,S,0,
Morse Tutor 189
s,s,0,0,0,s,1,1,1,0,1,s,1,0,0,s,1,5,5,0,l,1,0
,0,0,l,s,0,0,0,1,1,1,0,0,s,1,l,s,0,1,l,s,1,0,
5,1,S,0,0,S,S,S,0,0,1,0,0,0,0,5,5,1,0,0,5,5,5
,1,0,S,1,1,0,0,1,5,5,1,0,1,S,1,1,0,1,1,5,5,0
9070 DATA 1, 1, 1, 1, 1,s, 1, 1, 1 , 1 ,s,s, 1, 1, 1,s,s,s
, 1, 1,5,5,5,5, 1,5,5,5,5,5, 1,5,5,5,5, 1, 1,5,S,S,
1 , 1 , 1 , S, S, 1,1, 1,1,5
9080 DIM c*<36,9)
9090 FOR x = l TO 36
9100 READ c$(x>
9120 NEXT x
9130 RETURN
190
Flying Geese
It’s time to don your tweeds, grease up your shotgun and head for the
marshes. The geese are back from the north and the freezer is empty.
Don’t worry about the corpses - your faithful hound will deal with those
after the game is over. Just blast away with your shooter and notch up a
handsome tally.
10 REM ** FLYING GEESE @19
83 MICHAEL BEWS
20 GO TO 580
25 REM **FLYING/SHOOT ROUTINE
30 FOR x=o TO -fr: LET d (x) =ei -x+SGN <o-tw*I
NT (RND*tw)l: PRINT AT h<x),g<x)-o;" “;: FOR
z=o TO -fr: LET i = -i: PRINT AT d < x) , g (x ) ; "
a$(th-f) ; : NEXT z
40 IF PEEK 23556=65 THEN FOR y=o TO tw: PL
OT OVER ojen,tf! DRAW OVER o;-fr,th: PRINT
OVER a; AT si, th; -£”■,: NEXT y: LET SH=SH + o: PR
INT INVERSE o;AT 0,sx;SH;: IF g(x)=ev OR g(x
)=tv THEN LET B=B + o: PRINT AT d<x),g(x) 5 “
“i INVERSE o;AT 0,hy|Bi: LET g<x)=o-tw: LET h
<x)=o: FOR y=d(x) TO ni STEP tw: PRINT AT y-t
"iAT y - o, -f o ; 11 i AT y, -f o; "F" 5 AT y + o.-fo;
“6"i: NEXT y: PRINT AT ni-o,*o;“ * 5 AT
“iAT ni+Oj-fo; " " ;
50 LET h(x)=d(x): LET g(x)=g(x)+tw: IF gtx)
>tn THEN PRINT AT h ( x ) , g (x ) -o J " '■ ; : LET gtx
) =o
60 NEXT X: IF SH>99 THEN GO TO 300
70 GO TO 30
100 FOR x=l TO 4: LET h<x)=i: LET g(x)=x*5-4
: NEXT x
110 CLS : PRINT INVERSE 0;AT 0,0;"SHOTS:
iAT 0,10; PAPER 7) INK 2i“<A> TO FIRE “ ; INK
7; PAPER 1;AT 0,24;"SCORE: "; INK 4;AT 13,21
i“£££“iAT 14,20; “£££££" ; AT 15, 19; “£££££££“ ; AT
16, 19; "£££££££« iAT 1 7, 1 9 ; "^1" ; PAPER 2; INK
<di"D“i PAPER l; INK 4i"M££"i PAPER 2; INK 0;
AT IS,22; “D"iAT 19,22; "D“i
120 PRINT AT 20,0; PAPER 4;" «; p
Flying Geese 191
APER l;“ "; paper 4;"
“i INK 5i PAPER 1; “DDDDDDDD "5 PAPER 4;
130 PRINT AT 18, 1 } "M" 5 AT 19,1;"/V“ 5
140 GO TO 30
299 REM ***END OF GAME ROUTINE
300 IF B >TOT THEN LET TOT = B
310 PRINT FLASH 1 i AT 9,10;“ GAME OVER '* i FL
ASH 0! INVERSE 1(AT 11,45“ SCORE:“5B5“ IN 100
SHOTS “J
320 PRINT AT 13,4; INVERSE 15"HIGHEST SCORE:
" 5 TOT!
330 INPUT FLASH 1| "PRESS < ENTER > FOR NEXT G
AME" ;x*: LET SH=0: LET B=0: GO TO 100
570 REM **INITIALISATION***
580 PAPER l: INK 7: BORDER 6: CLS
590 DIM a*(4,2): DIM d(4): DIM g<4): DIM h(4
)
600 LET sx=6: LET hy=30: LET TOT=0: LET SH=0
: LET -f i = 15: LET tv=12: LET ev=ll! LET ni = 19:
LET ty=20: LET en=18: LET t-f=34: LET si = 16:
LET -fo=14: LET ei=8: LET -f = -l: LET Q=l: LET t
w=2: LET th = 3: LET -fr=4: LET tn=29
610 FOR'x=0 TO 7: READ a,b,c: POKE USR “A "+ x
, a: POKE USR “tf“+x,b: POKE USR "C"+x,c: NEXT
620 LET a$(4) ="AB”: LET a*<2 )= U CB“
630 FOR X=0 TO 7: READ a,b: POKE USR “/9"+x,a
: POKE USR “ /V" + x , b : NEXT x
640 FOR x=0 TO 7: READ a: POKE USR “D" +x,a:
NEXT x
650 FOR x=0 TO 7: READ a: POKE USR "if + x.a:
NEXT x
660 FOR x=0 TO 7: READ a,b: POKE USR ,, A“+x,a
: POKE USR “<S" +x , b : NEXT x
690 GO TO 100
999 REM **U.D. GRAPHICS DATA
1000 DATA 2,0,0,6,0,0,7,48,0,7,104,0,127,254,
127,31,192,31,8,0,15,0,0,3
1010 DATA 1,224,98,224,244,144,232,144,88,144
,232,144,248,144,224,216
1020 DATA 85,170,85,170,85,170,85,170
1030 DATA 66,16,132,33,4,81,4,160
1040 DATA 0,48,16,56,18,28,54,20,118,24,62,16
,60,16,60,0
192
Wordsum
A test of your logical thought processes, this program presents you with
a sum to solve. Not so difficult you might think, but in this case some of
the numbers have been replaced by letters, and the answer you want is
not a number, but the word that the numbers spell! The program gives
you a different set of number/letter substitutions for each problem, and
the answer is always to be found if you follow the arithmetic through.
5 BORDER 6: PAPER 5: INK 1
10 REM **W 0 R D S U M** @19
83 BY MICHAEL BEWS
20 CLS : PRINT PAPER 7; INK i;"W 0 R D S U
M @1983 MICHAEL BEWS" ,'AT 11, 12; "STANDBY"
35 REM ****READ WORD LIST***
40 DIM A(10): DIM C(10): DIM A«(10): DIM W*
(60,6)
45 LET B*=“
50 LET N=i
60 READ W*(N): IF W«(N)<1)="!" THEN LET N=
N-l: GO TO 80
70 LET N=N+1: GO TO 60
80 BORDER 6: PAPER 5: INK 1: LET T=0: LET N
N=1+INT <N*RND): LET X=6: IF W*<NN) <6)=" " TH
EN LET X=5
82 LET F$=W*(NN>( TO X)
83 BEEP .1,10
85 REM *****GET RANDON LETTER VALUES
86 CLS : PRINT INK 7; PAPER 1 5 *' W O R D S U
M @1983 MICHAEL BEWS";
90 FOR X=1 TO LEN P$
100 LET A* < X) =P$( X)
110 IF X=1 THEN GO TO 140
120 FOR 2=1 TO X-l: IF A$<X)=A*(Z) THEN LET
A(X)=A(Z): GO TO 190
130 NEXT Z
140 LET A(X)=INT <RND*10)
150 IF All)=0 THEN GO TO 140
160 IF X=1 THEN GO TO 190
170 FOR Y=1 TO X-l: IF A(X)=A(Y) THEN GO TO
140
Wordsum 193
180 NEXT Y
190 NEXT X
200 LET P-0
205 FOR X=6 TO 13: PRINT AT X,9; PAPER 6;BS;
: NEXT X
207 PAPER 6
210 FOR X=LEN PS TO 1 STEP -1
220 LET T = T + A<X)*10-'P
230 LET P=P+1
240 NEXT X
250 LET S=9*<1000+INT <RND*9000))
260 LET I=T-S
270 LET SS=STRS S: LET TS=STRS T: LET IS=STR
$ I
280 FOR X=1 TO LEN TS
300 FOR Y=1 TO LEN IS
320 IF IS < Y)=TS(X) THEN LET C(X)=1: LET IS<
Y)=AS(X)
340 NEXT Y
350 NEXT X
360 FOR X=1 TO LEN (T$)
380 FOR Y=1 TO LEN (SS)
400 1^ SS <Y)=TS(X) THEN LET C(X)=1: LET SS<
Y)=AS(X)
420 NEXT Y
430 NEXT X
440 FOR X=1 TO LEN TS
450 IF C<X)=0 THEN LET TS(X)=AS(X)
460 NEXT X
490 REM **PRINT SUM ON SCREEN**
495 INK 1
500 PRINT AT 7,22-2*LEN IS;: FOR X=1 TO LEN
is: beep . i , x: print is(X); u next x
510 PRINT AT 9,22-2*LEN SS;: FOR X=1 TO LEN
ss: BEEP .i,x+6: PRINT sstx); H ";: next x
520 PRINT AT 10,9; "_"
530 PRINT AT 12,22-2*LEN TS;: FOR X=1 TO LEN
TS: BEEP .1,X+l1: PRINT ... NEXT X
540 PRINT AT 18,0; INVERSE 1;"PRESS <SPACE>
TO REVEAL THE WORD"; INVERSE 0
550 LET XS=INKEYS: IF XS="" THEN GO TO 550
560 IF XS<>“ " THEN GO TO 550
565 BEEP .1,40: PRINT AT 7,6-LEN ISiSTRS I;A
T 9,6-LEN SS;STRS S;AT 10,0;"_"!AT 12,6
194 Wordsum
-LEN T*;STR* T
570 PRINT AT 12,22-2*LEN T$; : FOR X=1 TO LEN
tsp: beep . i,18+x: print a$(X)5" next x
580 PRINT AT 18,0j FLASH 1J M PRESS <1> FOR
ANOTHER WORDSUM “i FLASH 0
585 LET B=PEEK 23556: IF B<>49 THEN GO TO 5
85
586 DIM C(6): GO TO 80
590 DATA "HEARTH” , “YELLOW" , "ENGINE" , "RABBIT 1 *
,"CARPET","CLEVER","FEASTS","SHADES","POTATO"
,"RADIOS","THAMES",“CARROT","TOMATO","CHEESE"
,■BUTTER",-RUDDER","HEATER“,"PLINTH","FARMER"
,“TROPHY"
600 DATA “CHERRY","HAPPEN","COFFEE","TEAPOT"
,"MOTHER","SISTER","HOUSES","CABINS","ISLAND"
,"PIRATE","SILVER","JEWELS",“BOUNTY","TOWELS"
, "PLANES" , "PLANTS'*, "HOCKEY" , "TENNIS"
610 DATA "COSTLY","LEMONS","APPLES","ORANGE"
,"VIOLET","ROBBER","RATHER","POINTS","PAINTS"
,"TANDEM","LETTER","LITTER","LATTER",“FASTER"
,“MASTER","MISTER"
620 DATA "!"
3000 LET A=INT (RND*10): PRINT A;“ GO TO
3000
195
Asset Stripper ( 48 k>
This is an investment simulation in which you compete with the
computer’s company, Spectral Investments, to acquire £1 million.
Starting with £100,000 you must study market intelligence reports and
buy and sell shares on the stock market. If you find a company which is
rich in capital assets but running at a loss, you can make a bid for the
company with a mind to distributing its assets amongst the shareholders.
To make a takeover bid you must attempt to buy 51 per cent of the
shares, at which point the opposition will start bidding against you.
Occasionally, Spectral will initiate its own takeover bids. The longer the
bidding continues, the greater the possibility that a ‘third party’ will
intervene.
Ordinary shares may be bought and sold in any quantity and a regular
review of share prices is given, together with a market ‘wire service’. If
you want to look more closely at the performance of a particular
company, you have the option of calling up a copy of its annual report
which will give you information on assets, share prices, profits and other
useful data. During each round, all the companies manufacture and
trade their produce, and it is this activity which determines profitability.
Frequently a company will invest in new capital equipment and this
expenditure will cause a small drop in the share price. Don’t be too hasty
to sell your shares when a rise in productivity might just be around the
corner.
10 BORDER l: PAPER 1: INK 7t CLS
20 PRINT AT 0,9 j “ASSET STRIPPER": PRINT AT
2,7;"0 R. Erskine 1982";AT 4,5;"What is your
surname?“
30 INPUT n*
50 PRINT AT 5,4;"Enter difficulty level ";A
T 6,11 5 "(1,2 or3)"
60 INPUT lev
70 PRINT AT 7,10;"Please wait"
80 RANDOMIZE
90 GO TO 3260
100 PRINT TAB (11)i"ACCOUNTS"
140 PRINT
150 PRINT n*;e$
196 Asset Stripper
160 PRINT
170 PRINT "Liquid assets ","£";INT (<ch+.005
)* 100)/100
1S0 PRINT
190 LET q=0: LET ql = q
200 FOR x=l TO 10
210 LET q=q+e ( x )
220 IF ■f$<x)= M c" THEN 60 TO 240
230 LET ql=qi+<e<x)*d<x))
240 NEXT x
250 PRINT "Shares held ",INT q
260 PRINT
270 PRINT “Total share value £";INT <{ql++.0
05)*100)/100
280 PRINT
290 PRINT "Total assets","£";INT <<ql+ch+.00
5 )* 100)/100
300 PRINT *
310 IF ql + ch >s THEN 60 TO 2720
320 IF ql+ch<0 THEN 60 TO 2760
330 LET q3=0
340 FOR x=l TO 10
345 IF -f $ ( x ) = “ c " THEN 60 TO 355
350 LET q3=q3+(£<x)*d(x))
355 NEXT x
360 IF q3+zxch >s THEN 60 TO 2760
370 IF q3+zxch<0 THEN 60 TO 2720
380 IF t$="x" AND ch+ql>zxch+q3 THEN 60 TO
2720
390 IF t*= ,, x , ‘ AND ch + ql<zxch + q3 THEN 60 TO
2760
410 PRINT m$i" Claims assets ai £"}q3+zxch
420 PRINT
450 RETURN
480 PRINT TAB (10);"WIRE SERVICE"
490 LET q=0: LET ql=0
510 LET m <1)=asa
520 FOR x=l TO 10
530 IF -f$(x)="c" THEN PRINT c$(x) , "Ceased t
rading"
540 IF -f*(x) = ,, c" THEN 60 TO 680
550 PRINT
560 LET q=q+l
570 IF b ( x ) >a ( x ) AND e(x)<510000 AND -f(x)<51
Asset Stripper 197
0000 THEN PRINT c$(x),"May be ripe Tor taken
ver “
580 PRINT
590 IF g < x ) < 1 AND wlxl >59 THEN PRINT c*<x>,
"Pro-fits low”
600 PRINT
610 IF w ( x ) < 60 THEN PRINT c$ ( x ), "Heads -for
troub1e”
620 PRINT
630 IF g < x) >5 THEN PRINT c$(x) , "Set -for goo
d pro-f i ts “
640 PRINT
650 IF v<x)>0 AND v(x)>=l THEN PRINT cSix),
“Announces " ; INT v(x)5" Redundancies”
660 PRINT
670 LET ql=ql+d<x)
675 PAUSE 100
680 NEXT x
690 IF q=0 THEN LET t*=“x"
700 IF q=0 THEN GO TO 110
710 LET asa=ql/q
720 PRINT "All share average "; INT <<asa+.00
5)#100)/100
730 IF asa>m(1) THEN PRINT "up "5INT <<<asa
-m(1))+. 005 ) #100) / 100
740 IF asa<m(1) THEN PRINT "down "JINT < < <m
(1)-asa)+.005)#100)/100
750 IF asa>i<2) THEN PRINT “All time high”
760 IF asa)i(2) THEN LET i<2)=asa
770 IF asa<i(3) THEN PRINT "All time low”
780 IF asa<i(3) THEN LET i(3)=asa
810 RETURN
840 FOR x=l TO 10
850 IF ■f*<x)=”c" THEN GO TO 1010
860 IF 1ev=1 OR lev=2 THEN GO TO 880
870 IF -f$(x)="x" AND -f(x)>0 AND -f(x)<510000
THEN GO SUB 1110
880 IF w < x) <61 AND -fix) <510000 THEN GO SUB
1105
900 IF -f*(x)="c" THEN GO TO 1010
910 IF zxch<100 THEN GO TO 1010
915 IF 1ev=l AND RND> .5 THEN GO TO 950
920 LET f=< ( ( <s/100)#5i)-f (x) >*d<x) )
930 IF < b ( x ) / 100) #51 >-f AND -f<zxch AND -f ( x ) < 5
198 Asset Stripper
10000 AND e(x)<510000 AND g(x)<l THEN GO TO
2620
940 IF f*(x)=*'c" THEN GO TO 1010
950 IF zxch<100 THEN GO TO 1010
955 LET tenth=zxch/10
960 IF w < x)>60 AND g(x)>0 THEN GO SUB 1040
970 IF 1ev=l THEN GO TO 1010
980 IF w (x )>60 AND g(x)>l THEN GO SUB 1040
990 IF w < x ) >60 AND g(x)>5 THEN GO SUB 1040
1000 IF w (x )>60 AND g (x )>10 THEN GO SUB 1040
1010 NEXT x
1020 RETURN
1040 IF (tenth/d(x.))+e(x)+f (x)>l(x) THEN RET
u£n
1050 IF -f < x ) < 510000 AND <-f (x) + (tenth/d (x) )) >s
/2 THEN RETURN
1060 LET a(x)=a(x)+tenth*1.05
1070 LET zxch=zxch-tenth
1080 LET -f (x)=f (x)+INT (tenth/d(x))
1090 LET 1 (x)=1 (x)-INT (tenth/d(x))
1100 RETURN
1110 LET a <x ) =a (x ) - ( (-f (x)*d <x) )*1.05)
1120 LET zxch=zxch+f(x)*d(x)
1130 LET 1 ( x ) = 1 < x) +-f (x)
1140 LET f(x)=0
1150 RETURN
1180 PRINT
1190 PRINT TAB <9);"SHARE PRICES"
1200 PRINT
1210 PRINT "COMPANY" 5 TAB (11); "SHARE PRICE" JT
AB (24) ;"UP/DOWN"
1220 PRINT
1230 FOR x=l TO 10
1240 IF f$(x)="c" THEN PRINT c*(x)5“CLOSED D
OWN"
1250 IF -f*(x)="c" THEN GO TO 1310
1260 IF INT d ( x)=d < x) THEN LET p$=STR$ d(x) +
“ . 00 "
1270 IF INT n(x)=n(x) THEN LET r*=STR$ n(x)+
“ . 00 "
1280 IF INT d ( x)< d (x) THEN LET p*=STR* (INT
((d(x)+.005)*100)/100)
1290 IF INT n ( x)< n(x) THEN LET r*=STR$ (INT
((n(x)+.005)*100)/100)
Asset Stripper 199
1300 PRINT c$(x)iTAB <21-LEN p$+1);p*;TAB (3
0-LEN r$ +1)irS
1310 NEXT x
1320 PRINT
1380 PRINT "ALL SHARE AVERAGE ";INT <<asa+.00
51*100)/100
1390 PRINT 11 You have £";INT ( < ch+ . 005) *100) / 1
00
1410 RETURN
1430 PRINT "BUY HOW MANY?"
1440 INPUT y
1450 IF y*d(x)>c h THEN PRINT "You have insuf
■f icient cash 11
1460 IF y*d(x)>ch THEN GO TO 1430
1470 IF y >1 (x) THEN PRINT "Not enough shares
avai1ab1e"
1480 IF y >1 < x) THEN GO TO 1430
1490 IF y+e(x)>500000 AMD e<x)<510000 THEN G
O TO 1660
1500 LET ch = ch-<y*d <x) )
1510 LET 1 <x) = l (x) -y
1520 LET a(x)=<a(x)+<y*d<x)))*1.05
1530 LET e(x)=e < x)+y
1540 LET x*="p"
1550 RETURN
1570 PRINT “How many do you wish to sell?"
1580 INPUT y
1590 IF y > e(x) THEN PRINT "You do not hold t
hat many"
1600 IF y>e(x) THEN GO TO 1570
1610 LET ch=ch+(y*d(x))
1620 LET 1<x)=l(x)+y
1630 LET a(x)=a(x)-((y*d(x))*1.05)
1640 LET e(x)=e < x)-y
1645 LET x$="p"
1650 RETURN
1680 LET t*="phaseh“
1690 LET zl=.01
1700 PRINT TAB (7)i"TAKEOVER BID"
1705 PRINT
1710 PRINT "Your shareholding is "JINT <e(x)*
100 )/s!" percent"
1720 PRINT "Current share price is £“!INT <(d
(x)+.005)*100)/100
200 Asset Stripper
1730 PRINT "There are ">INT l(x)i" available"
1740 PRINT "You need " 5 INT (510000-e<x));“ -fa
r a majority"
1750 PRINT "These cost £";INT <{(510000-e(x))
*d (x ) + . 005) *100) / 100, 11 at market price"
1755 PRINT "You have £";INT ((ch+.005)*100)/1
00
1756 LET eg=0
1757 FOR v=l TO 10
1758 IF f*(v)<>“c" THEN LET eg=eg+( i (v)*d<v)
)
1759 NEXT v
1760 IF RND>.10 THEN GO TO 1769
1762 PRINT "Third party wins bid"
1763 GO SUB 2040
1764 GO TO 1890
1769 PRINT "How much do you bid per share?"
1770 INPUT z
1810 IF zl>z THEN GO TO 1880
1820 LET k1=a(x) + (510000*(z +.01) )
1822 LET k2= (510000--f(x))*(z+.01)
1830 IF k1>k2 AND (zxch + eg) > = k2 THEN LET zl =
Z1+.01
1840 IF zl')z THEN PRINT m*;" bids ";INT <<zl
+.0051*100)/100
1860 IF z1>z THEN GO TO 1760
1870 IF z1< z THEN GO SUB 1920
1880 IF zl>z THEN GO SUB 2170
1890 LET zl=0
1895 LET z=0
1900 IF t$="phaseh" THEN GO TO 1540
1910 IF t$="phasem" THEN GO TO 1010
1920 REM disposal
1930 PRINT
1940 LET 21=0
1950 LET F=0
1960 PRINT "YOU HAVE WON THE BID"
1970 LET CH=CH-(Z*(510000-E<X)))
1980 LET A<X)=A<X)+(Z*(510000-E<X)))
1990 LET E(X)=E(X)+(510000-E(X))
2000 LET L(X)=S-(E(X)+F(X))
2010 PRINT "Do yo want to strip the assets o-f
this company?"
2020 INPUT y$
Asset Stripper 201
2030 IF y*=“n" THEN RETURN
2040 PRINT "Assets are being distributed","am
ongst shareholders"
2050 LET psh =(e(x)*100) /s
2060 LET z x p s h = < +( x ) # 100)/ s
2070 LET oo=b < x )/ 100
2080 LET ch=ch+ <psh*Do)
2090 LET zxch=zxch+<zxpsh*oo>
2100 IF a(x)< =0 THEN GO TO 2140
2110 LET d(x)=a(x)/s
2120 LET ch=ch+(e(xHfd(xl)
2130 LET zxch=zxch+(f(x)#d(x)l
2140 LET ■f^txJ^^c 11
2150 LET 1(x)=0
2160 RETURN
2190 IF zHH 510000--f < x ) ) >zxch THEN PRINT “Sp
ectral withdraws": RETURN
2200 PRINT m*j“ has won bid"
2220 LET zxch-zxch-( (510000-* < x ) ) *z 1 )
2230 LET a ( x)=a(x) + < < 510000--f < x ) ) *z 1)
2240 LET * (x)=-f (x) + <510000--f <x) )
2250 LET zl=0
2260 IF g(x)<1 THEN GO SUB 2040
2270 RETURN
2290 FOR x = l TO 10
2300 IF **<x)= M c" THEN GO TO 2590
2310 LET v<x)=0
2320 LET c(x)=0
2330 IF a(x)<10000 THEN LET a<x)=10000
2340 LET j (x)=a(x)/10
2350 LET c<x)=c<x)+j<x)
2360 IF h(x)<j (x)/1000 THEN LET h<x)=j<x)/10
00
2370 IF b < x) > = a(x)/20 THEN GO TO 2400
2380 LET c<x)=c<x)+(<a<x)/10)-b<x))
2390 LET b(x)=INT (a(x)/10)
2400 LET prod=j ( x ) / 10
2410 LET rnd=INT (RND*3555)+1
2420 IF rnd=l THEN LET w(x)=w(x)-1
2430 IF rnd=3 THEN LET w<x)=w(x)+l
2440 LET t(x)=prod*w(x)
2450 LET c(x)=c<x)+(h<x)*5000)
2460 LET prot*t(x)-c(xl
2470 LET a < x)=a < x)+t(x)
202 Asset Stripper
2480 LET a(x>=a<x)-c (x)
2-490 IF a(x) < = 10000 THEN LET v<x)=h(x)
2500 IF a(x)< = 10000 THEN LET h<x>=j (x)/1000
2510 LET v(x)=v< x)-h (x)
2520 LET g <x) = <pro-f*100)/t (x)
2530 LET sp1 =d (x)
25-40 IF a (x) <10000 THEN LET a (x) =10000
2550 LET d(x)=a < x)/s
2560 LET n < x)=d < x)-sp1
2570 IF a(x)<10000 THEN LET a(x)=10000
2580 IF RND>.9 THEN LET w(x)=w(x)+10
2535 IF RND >.9 THEN LET w(x)=w(x)-10
2590 NEXT x
2610 RETURN
2620 PRINT : PRINT
2640 LET t$="phasera"
2660 PRINT m$; " bid -for"
2670 PRINT c$(x)i“takeover"
2680 LET z1=d < x)
2690 PRINT "at "iINT <<d<x)+.005)*100)/100;“
2700 60 TO 1710
2740 PRINT “You have won"
2750 GO TO 2780
2770 PRINT m$;“ has won","with £";zxch+q3
2730 PRINT “Do you want another game?”
2790 INPUT v$
2800 IF v$=“y" THEN 60 TO 10
2810 STOP
2820 REM loop
2830 GO SUB 2280
2850 60 SUB 2280
2860 60 SUB 100
2870 GO SUB 460
2890 60 SUB 1180
2900 PRINT “ENTER INITIAL OF CHOSEN COMPANY"
2910 PRINT "OR P(PASS)";w$
2920 INPUT x$
2930 IF x*="p" THEN 60 TO 3240
2940 FOR x =1 TO 10
2950 IF CODE c*<x) <1)=CODE x$-32 THEN GO TO
2970
2960 NEXT X
2965 60 TO 2900
Asset Stripper 203
2970 IF -f$<x)="c" THEN GO TO 2900
2980 PRINT
2990 PRINT c*(x)
3000 PRINT "Liquid capital £";INT <<a<x>+.005
)* 100>/100
3010 PRINT "Capital equipment £";INT <<b(x)+.
005)*100)/100
3020 PRINT "Employees "JINT h(x)
3030 PRINT “Overheads £"JINT (<c(x)+.005)*100
) /100
3040 PRINT "Pro-fit £"iINT <(t<x)-c<x)+.005)*1
00)/100
3050 PRINT "Pro-fit percent o-f turnover £";INT
g(x)
3060 PRINT “Share price £“;INT <<d(x)+.005)*1
00)/100
3070 PRINT "Shares available ; INT l<x)
3080 PRINT "Shares held by you " i INT e(x)
3090 PRINT "Percentage shares held by you "jI
NT <(e<x)*100)/s)
3100 PRINT "You have £"}INT <<ch+.005)*100>/1
00
3110 PRINT “_"
3120 IF e<x) > = 510000 THEN PRINT "Dispose o-f
assets?"
3130 IF e<x)>=510000 THEN INPUT a*
3140 IF e < x)<510000 THEN LET a*="n"
3150 IF e<x)>=510000 AND a*="y" THEN GO SUB
2040
3160 IF -f*<x)="x" THEN PRINT "Buy <b),Sell <
s),or Pass (p) "
3170 IF ■f*(x)="x" THEN INPUT x*
3175 IF -f * ( x ) =" c " THEN LET x*="p"
3180 IF x$<>"p" AND x*< >"s J1 AND x*<>"b" THEN
GO TO 2900
3190 IF. x$="b" THEN GO SUB 1420
3200 IF x*="s“ THEN GO SUB 1560
3210 IF x*=“p" THEN PRINT "Look at another c
ompany?(y or n)"
3220 IF x*="p" THEN INPUT a$
3230 IF x*="p“ AND a*="y“ THEN GO TO 2890
3240 GO SUB 820
3250 GO TO 2850
204 Asset Stripper
3270 LET m*— 1 'Spectral Investments Ltd"
3280 DIM cS(10,18)
3290 LET c* ( 1 ) = " ACME CORP"
3300 LET c$(2)=”BRN IND.“
3310 LET c$<3)="CAPRA STEEL"
3320 LET c* <4)="DELTA GROUP"
3330 LET c* < 5)=“ELLIOT CORP"
3340 LET c*(6)="FORAX CHEMICALS"
3350 LET c$(7)="GNS INT. "
3360 LET c$< 8)=“HOPE HOLDINGS"
3370 LET c*<9)="INCE AND CO."
3380 LET c*<10)="JONES AND PEEKE"
3390 LET x=10
3400 DIM a < x ) : DIM b<x): DIM c(x): DIM t(x):
DIM d (x) : DIM p (x) : DIM e(x): DIM -f<x): DIM g
(x): DIM h < x)
3500 DIM i(3)
3510 LET w$="
3520 DIM j(x): DIM 1(x)
3540 LET e*=" Investments Ltd"
3550 LET s=1000000
3560 LET ch=100000
3570 LET zxch=ch
3580 LET aw=5000
3590 LET asa=0
3600 LET t*=“o"
3620 DIM m(3)
3630 LET pt=0
3640 DIM n <x) : DIM w<x): DIM v(x)
3680 DIM -f$<x)
3690 FOR x=l TO 10
3699 FOR x=l TO 10
3700 LET a(x)=INT <RND*s/2)+l
3710 LET d(x)=s/a < x)
3720 LET t> < x ) =INT (RND*s/10)+l
3730 LET h(x)=b(x)/10/1000
3740 LET w(x)=60
3750 LET -f$<x)=“x"
3760 LET 1(x)=s
3770 NEXT x
3780 GO TO 2820
205
Bricklayer
You are in control of a small aircraft which flies across the top of the
screen. From the bottom of the screen, a large wall is being built up
which will eventually fill the whole of the playing area. The object of the
game is to drop men out of the aircraft, aiming to plummet them through
gaps in the wall to the bottom of the screen. If a man should hit any part
of the wall then a life will be lost. In order to create gaps for the men to
drop through and to prevent the wall advancing too far up the screen,
you also have the option of dropping bombs which blow sections of the
wall away.
1 PAPER 5: BORDER 5: CLS
2 GO SUB 4000
3 PAUSE 100
5 LET hs=0
10 GO SUB 180
13 PRINT AT 0,135"HI:"5hs
20 LET x = x + f
30 IF x=0 OR x=29 THEN BEEP .04,10: LET -f =
-i
32 PRINT AT 0,0i "SCORE: "5s5 AT 0,24| “LIVES: "
llivesi" “
40 PRINT AT 1,x;" B “
50 IF INKEY*=“z" THEN IF tOl THEN LET t =
l: LET k = x + l: LET 1-2
55 IF INKEY*="m" AND x>3 AND x<27 THEN IF
zOl THEN LET z=l: LET q=x + l: LET i=2
60 IF t=l THEN PRINT AT 1 , k 5 " “: LET 1=1+1
: PRINT AT 1,L5"C": BEEP .002,0: IF SCREEN* (
1 + 1,k)< > " “ THEN GO SUB 140
65 IF z=l THEN PRINT AT i,q!“ ": LET i=i+l
: PRINT AT i,qj "D": BEEP .002,-5: IF SCREEN*
(i+l,q)<>“ ” THEN GO SUB 160
70 IF 1=21 THEN PRINT AT 1 ,k5“ ": LET t=0
75 IF i=21 THEN LET s=s+b*2: BEEP .1,20: P
RINT AT i,q;" ": LET i=0: LET z=0
110 LET a=a+c
115 PRINT AT b,a; INK RND*3; PAPER 7\“A"
120 IF a<3 OR a>27 THEN LET c = -c: LET b=b-l
206 Bricklayer
125 IF b=3 THEN GO TO 1000
130 GO TO 20
140 PRINT AT 1,k!" PRINT AT l + l,l<-2;"
LET t=0: IF 1< 20 THEN PRINT AT l+2,k-l|"
150 RETURN
160 PRINT AT i,q; FLASH 1;"*": LET lives=liv
es-l: BEEP .1,-30: BEEP .1,-25: LET z=0: PRIN
T AT i,q;“ “ i AT i + i,q-i;“ " : IF lives=0 THE
N GO TO 1000
166 RETURN
180 DATA 0,126,126,126,126,126,126,126
181 DATA 0,24,118,219,255,110,24,0
182 DATA 231,126,60,60,60,60,60,24
183 DATA 28,28,8,62,8,8,20,34
190 FOR a=USR “a" TO USR'"d"+7: READ b: POKE
a,b: NEXT a
191 LET a=27: LET b=20
192 LET c = -. 61 LET t=0: LET 1 = 1: LET z=0: LE
T 1=1
193 LET x=0: LET -f = l
194 LET s=0
197 LET 1ives=10
200 RETURN
1000 IF 1ives=0 THEN PRINT AT 0,30;“0"
1010 FOR o=-30 TO 30 STEP 2
1020 BEEP .01,□
1025 NEXT o
1030 PRINT FLASH 1; AT 15,7; " ANOTHER GAME?
1035 IF s>hs THEN LET hs=s
1040 INPUT a$
1050 IF a* < 1 ) = “ y " THEN GO SUB 191: CLS : PAU
SE 100: GO TO 15
1060 STOP
4000 PRINT AT 1,10; "BRICK LAYER"
4010 PRINT AT 1,105 OVER 1?"_«
4013 PRINT ’’The object is to drop humanoids
from the spacecraft at the top of the screen
As the game progresses a
wall will be built up, starting from the bot
tom.Holes can be made in this by releasing a
t>omb - You have 10 lives and each t
ime a humanoid hits the wall a life will be 1
ost. *
Bricklayer 207
4015 PRINT ’ ' ■ Z.DROPS BOMBS
M. ... RELEASES HUMANOIDS"
4017 PRINT INVERSE lj’"Press any key to star
t. "
4020 PAUSE 0
4025 CLS
4030 RETURN
208
Dogfight
Up in the wild blue yonder, you and the enemy ace are duelling above the
trenches. Swoop down on the foe, hang on his tail, catch him unawares
from below, with your trusty Brownings spitting leaden death. All good
clean fun, but watch for the wraparound!
1 REM Solo Dog-fight @ R. Erskine 1983
5 GO SUB 8000
10 GO SUB 9000
20 BORDER 1: PAPER 5: CLS
90 GO SUB 7100
1000 REM main loop
1005 IF p( 3 ) = q < 3) AND p(4)=q<4) THEN GO SUB
4000
1010 PRINT AT p(3),p(4)5” M
1020 IF p (1)< 21 THEN PRINT INK 15 AT p(l),p<
2);CHR* (a+143): LET p<3)=p<l): LET p<4)=p<2)
1025 IF p (1)=q(3) AND p(2)=q<4) THEN GO TO 4
000
1030 PRINT AT q <3),q(4) j ” "
1040 IF q(1>,21 THEN PRINT INK 0;AT q(l),q(
2):CHRi£ (aa+151): LET q(3)=q(15: LET q(4)=q(2
1050 IF INKEY$=" x" AND g=l THEN LET -F = l
1060 IF RND >.5 AND g=-l AND ABS <p(l)-q<l)><7
AND ABS (p (2) -q (2) ) <7 THEN LET -f=2
1070 IF INKEY$="a" AND g=l THEN LET a=a+l: I
F a=9 THEN LET a=l
1080 IF RND>.9 THEN LET aa=aa+l: IF aa=9 THE
N LET aa=l
1090 IF INKEY$="z” AND g=l THEN LET a=a-l: I
F a=0 THEN LET a=3
1100 IF RND >.9 THEN LET aa=aa-l: IF aa=0 THE
N LET aa=8
1110 IF -f>0 THEN 60 SUB 2000
1115 IF p(11 >20 THEN LET p (1)=0
1116 IF q <1) >20 THEN LET q(1)=0
1117 IF p(l)<0 THEN LET p < 1) =20.
1118 IF q ( 1 <0 THEN LET q ( 1 ) =20
1130 LET p(l)=p(1)+d(a): LET p < 2) =p < 2)+d < a + 8 >
Dog Fight 209
1160 IF p (2)>31 THEN LET p(2)=0
1170 IF p(2)<0 THEN LET p<2)=31
1180 LET ■ q(1)=q(1)+e(aa) : LET q(2)=q(2)+e(aa+
8 )
1210 IF q(2)>31 THEN LET q(2!=0
1220 IF q <2)<0 THEN LET q<2)=31
1230 LET g=-g
1250 GO TO 1000
2000 REM fire
2010 IF -f = l THEN LET x=FN a(p(2)): LET y=FN
b (p ( 1) ) : LET y=-y
2020 IF -f =2 THEN LET x = FN a<q<2)): LET y=FN
b(q(1)>: LET y=-y
2030 IF f = 1 THEN LET xx=fta): LET yy=-f(a+3)
2040 IF i=2 THEN LET xx=g<aa): LET yy=g(aa+8
2045 LET cnt=0
2050 IF x >247 OR x<8 OR y<8 OR y>175 THEN GO
TO 2200
2055 IF cnt >0 THEN PLOT INK -f i OVER 1 jx,y
2070 IF f=l AND ATTR <q(1),q(2))=41 OR f=2 AN
D ATTR <p<1),p<2))=42 THEN GO TO 5000
2085 LET crit=cnt + l
2090 PLOT INK -f; OVER ljx,y: LET x = x + xx: LET
y=y+yy
2095 IF cnt<6 THEN GO TO 2050
2200 LET -f =0: RETURN
3080 PRINT PAPER 2; INK 6; FLASH 1;AT 20,q(2
3090 FOR x = 1 TO 10: BEEP .1,-20: NEXT x: PRIN
T PAPER 55 AT 20,q(2);" "
3100 LET Iives2=lives2-l: IF lives2=0 THEN G
O TO 6000
3110 LET aa=l: LET q<l)=20: LET q(2)=31
3120 GO SUB 7100
3130 RETURN
4000 REM collision
4010 PRINT INK 2i PAPER 6! FLASH 1jAT p(3),p
( 4 ) j " * "
4020 LET 1ives=lives-1: LET 1ives2=lives2-l
4030 FOR 1=1 TO 10: BEEP .1,-20: NEXT 1
4040 IF 1ives=0 OR lives2=0 THEN GO TO 6000
4045 PRINT AT p(3i,p<4);" *
4050 LET a=l: LET aa=l: LET p(l)=20: LET p(2)
210 Dog Fight
=0: LET q C 1 ) =20; LET q<21=31: LE T p(3)=p(i):
LET p (4 ! =p-( 2) : LET q<3)=q<l): LET q(4)=q(2)
4060 GO SUB 7100
4070 GO TO 1000
5000 IE +=i THEN PRINT PAPER 2;AT q(l!,q!2)
.
5010 IF f = 2 THEN PRINT PAPER 2; AT p(l),p<2)
; " * "
5030 FOR 1=1 TO 10: BEEP .1,-20: NEXT I
5040 IF -f = l THEN LET 1 i ves2= I i ves2-1: IF liv
es2=J0 THEN GO TO 6000
5050 IF f =2 THEN LET 1 i ves= 1 i vss- 1 : IF lives
=0 THEN GO TO 6000
5060 IF -f = l THEN LET q<i)=20: LET q(2)=31: L
ET aa=1
5070 IF -f =2 THEN LET p(l)=20: LET p <21=31: L
ET a=l
5080 GO SUB 7100
5090 GO TO 2100
6000 REM end: IF lives=0 AND lives2=0 THEN P
RINT AT 18,4;"The result is a draw"
6010 IF Iives=0 AND lives2>0 THEN PRINT AT 1
8,3;”The computer is the winner"
6020 IF 1 ives >0 AND lives2=0 THEN PRINT AT 1
8,4;" You are the winner"
6030 PRINT AT 20,4;"Press any key to restart"
6040 IF INKEY*="" THEN GO TO 6040
6050 RUN
7100 PRINT PAPER 1; INK 7;AT 21,0;"PLYR LIVE
S: ";lives;" COMP, lives: ”;iives2
7110 RETURN
8000 PAPER l: INK 7: BORDER 1: CLS
8010 PRINT AT 0, 9; "SOLO-DOGFIGHT": PRINT : PR
I NT
8020 PRINT : PRINT “ Player controls:"
: PRINT : PRINT " a = up z = down x = -fire
" : PRINT : PRINT : PRINT : PRINT "The player
controls the blue ","aircraft and the compute
r ","controls the black.”
8050 PRINT AT 21,4;"Press any key to start"
8060 IF INKEY$="" THEN GO TO 8060
8070 RETURN
9000 DIM p C4)
9010 DIM q14)
Dog Fight 211
9020 DIM g$(2,1)
9030 DIM d < 16): DIM e(16)
90-40 LET g= 1
9050 LET p ( 1)=20: LET p<2)=0: LET q(1)=20: LE
T q(2)=31! LET p(3)=p(l): LET p(4)=p(2): LET
q < 3)=q(1) : LET q(4)=q(3)
9060 LET a=l: LET aa=a
9070 RESTORE : FOR x=l TO 16
9080 READ n: LET d(x)=r>
9090 READ n: LET e(x)=r>
9100 NEXT x
9110 DATA 0,0,-1,-1,-1,-1,-1,-1,0,0,1,1,1,1,1
, 1
9120 DATA 1,-1,1,-1,0,0,-1,1,-1,1,-1,1,0,0,1,
-1
9130 LET -f=0
9140 LET g$(l)=CHR* Ca+143): LET g$(2)=CHR$ (
aa+151)
9150 FOR x=USR "a" TO USR "p"+7
9160 READ n
9170 POKE x,n
9180 NEXT x
9190 DATA 0,15,132,255,0,15,0,0
9200 DATA 8,26,52,9,18,164,64,0
9210 DATA 84,84,116,84,16,16,16,48
9220 DATA 16,72,36,208,72,36,2,4
9230 DATA 0,240,0,255,33,240,0,0
9240 DATA 0,2,37,72,144,36,88,16
9250 DATA 12,8,8,8,42,46,42,42
9260 DATA 32,64,36,18,11,36,18,8
9265 DATA 0,240,33,255,0,240,0,0
9270 DATA 16,88,164,144,72,37,2,0
9275 DATA 42,42,46,42,8,8,8,8
9280 DATA 8,18,36,11,18,36,64,32
9285 DATA 0,0,15,0,255,132,15,0
9286 DATA 0,64,164,18,5,36,26,4
9287 DATA 48,16,16,16,84,116,84,84
9288 DATA 4,2,36,72,203,36,72,16
9290 LET lives=3: LET lives2=3
9300 DEF FN a(x!=x#8+4
9310 DEF FN b(x)=x*8-172
9320 DIM f(16): DIM g(16)
9330 FOR x = 1 TO 16: READ r.: LET -f(x)=n
: NEXT
212 Dog Fight
9350 DATA 3,3,0,-8,-8,-3,0,8,0,S,3,3,0,-8 -3
-3 . .
9360 FOR x=l TO 16: READ n: LET g(x)=n: NEXT
9-j70 DATA -3,-8,0, 8,8, 8,0,-3,0, 3, 8,8,0,-3,-8,
9999 RETURN
213
This is series of six programs which have been divided into three self
contained groups. It represents the evolution of life from the single celled
amoeba to modern man, linked by a single theme—survival!
Evolution 1
Evolution 1 begins with the amoeba stage, in which the player controls
the movement of a tiny amoeba which must wander round the screen
eating spores whilst avoiding attack from other single celled creatures.
In the second program in this suite the player is transformed into a frog
which has to dodge from side to side avoiding capture by birds whilst
zapping the required number of airborne flies with its tongue. There is
no fairy princess as a reward for this one but instant promotion into the
form of a beaver in the third program, in which you must swim around
and capture ten fish whilst avoiding contact with a vicious crab.
i BORDER 0: PAPER 0: INK 7: CLS
100 PRINT AT 0,6;"E VOLUTION"
110 PRINT • INK 6’“This semi-scientific seri
es of*' INK 5* “routines gives you the chance
to” INK 4’“evolve -from an amoeba to a human”
• INK 7'“based on the theory that only*’ INK
6’“the strong survive. ” 1 INK 5'"Press ENTER
to continue.*
120 PAUSE 0: CLS
122 PRINT "This program goes -from amoeba t
o -frog to beaver."' INK 5'“The next program g
oes from gorilla to caveman."’ INK 4’"Th
e final program of this trio involves the pr
esent stage of evolution - MAN and his tech
nology. “
123 PRINT ’“The intention is that you should
try the stages in the correct order but aft
er each stage you are given a menu of option
s. “
124 PRINT ’"Press ENTER to continue."; PAUSE
0: CLS
130 GO TO 1000
140 PRINT “The first stage is as an amoeba <
A ). You have to eat 5 spares ( D ) while av
214 Evolution 1
aiding B and C .“
150 PRINT INK 6’“This is also a battle agai
nst time, -for when the clock at the top a-f
the screen says 0, it means that you have
starved because you did not eat the s
pores in time.“
155 PRINT ’“Move about in the water with the
cursor keys 5-8."
160 PRINT INK 5’“Press ENTER to start stage
1.": PAUSE 0: CLS : GO TO 1050
1000 LET a=0: RESTORE 1010: FOR -f=USR "a” TO
USR “d" +7: READ g: POKE f,g: NEXT -f
1010 DATA 120,132,180,178,129,153,85,51
1020 DATA a,24,36,90,90,36,24,a
1030 DATA a,73,42,28,127,28,42,73
1040 DATA a,60,66,145,133,145,66,60
1045 GO TO 140
1050 LET ay=15: LET ax=14: DIM y<6): DIM x<6>
: LET a%~"BBCCDD"
1055 LET t=100: LET sc=0
1060 FOR f = l TO 6: LET y<-f)=INT <RND*22): LET
x (f ) =INT <RND*32): PRINT BRIGHT 1; AT y<-f),x
<-f ) 5 INK i ) : NEXT -f
1100 PRINT AT ay,ax;“/9“
1110 FOR *«1 TO 5 STEP 2: FOR i-f TO i +1
1120 PRINT AT y(i),x(i);“ ": LET y<i)=INT (y(
i)+RND*2-RND#2): LET x<i)=INT <x(i)+RND*3-RND
*3)
1125 IF -f < 5 THEN LET y < i ) =y (i ) + < y (i ) < ay) - (y (
i ) >ay) : LET x (i) =x (i ) + {x (i) < ax) - (x (i) >ax)
1130 IF y(i)<a OR y(i)>21 THEN LET y(i)=ll
1140 IF x(i)<a OR x(i)>31 THEN LET x(i)=15
1150 PRINT BRIGHT lj INK *SAT y<i) ,x ( i ) 5 a* ( i
)
1155 IF ATTR <ay,ax)<>6 THEN GO TO 1200
1157 PRINT AT ay,ax|“ ■
1160 LET ay=ay+(INKEV*="6" AND ay<21)-<INKEY*
-■7“ AND ay>a)
1170 LET ax=ax+<INKEY*-“8“ AND ax<31)-(INKEY*
«*5" AND ax >a)
1175 LET t-t.-l: PRINT AT a,15jti" “I IF t=a T
HEN GO TO 1?00
1176 IF ATTR <ay,ax)<>7 AND ATTR (ay,ax)<>6 T
Evolution 1 215
HEN GO TO 1200
1177 PRINT AT ay,axi"A"
1180 NEXT i: NEXT i : GO TO 1100
1200 IF ATTR (ay,ax)<69 THEN GO TO 1210
1201 PRINT FLASH 1 ; AT ay, ax; M /?“ : FOR j=l TO
15: BEEP .01,RND*20: NEXT j! FOR j=5 TO 6
1202 IF ay«*y (j ) AND ax=x (j I THEN LET wh-j
1203 NEXT j: LET y(wh)«INT <RND#22): LET x(wh
)-INT <RND*32): PRINT INK whiAT y(wh),x(wh)i
a$(whl
1205 LET sc=5c+l: IF sc<5 THEN GO TO 1177
1208 CLS : PRINT "Well done you survived the
-first”’ INK 6’"stage o-f evolution as an amoeb
a.*: 60 TO 8000
1210 FOR -f-5 TO 30 STEP 5: BEEP .01,-f: NEXT -f
: CLS : PRINT ’“Bad luck! You -failed in the 1
st stage o-f evolution.”: GO TO 8000
2000 PRINT "In this stage you have to catch f
lies on your tongue, while avoiding the b
irds which swoop down to try and capture the
ir prey- YOU !“
2010 PRINT INK 6’"Press 0 to stick your tong
ue out6 to move le-ft, and 7 to move right."
’ INK 5’"You have survived this stage when
you have consumed 10 -flies without -falling p
rey to the birds."’ INK 4’"Press ENTER to
start."
2020 PAUSE 0: CLS
2030 RESTORE 2040: FOR -f=USR "a" TO USR "g“+7
: READ g: POKE -f, g: NEXT -f
2040 DATA 28,34,78,79,56,32,64,48,56,68,114,2
42,28,4,2,12
2050 DATA 15,48,64,92,88,84,82,249,240,12,2,5
8,26,42,74,159
2060 DATA 0,0,0,34,85,63,24,0
2070 DATA 0,0,0,63,127,143,1,15,31,124,240,19
2,224,255,0,0
2100 LET x=15: LET y(1)=RND#6+13: LET x(l)=0:
LET y(2)=0: LET x(2)=30: LET y(3)=y<2): LET
x <3)=x(2): LET -f=0
2110 INK 5: PLOT 0,7: DRAW 255,0: INK 4
2120 PRINT AT 0,15)-fjAT 19,xj" AB " J AT 20,xl"
CD “i INK 6 j AT y<1) ,x< 1) i "£";AT y(3),x(3)S"
216 Evolution 1
“; INK 5;AT y(2),x(2); *F6“
2122 LET y (3)=y(2): LET x<3)=x<2>
2125 IF INKEY*="0" THEN GO SUB 2200
2130 IF INKEY*<>"“ THEN BEEP .003,1: BEEP .0
03,2: BEEP .003,3: BEEP .003,4
2140 IF ATTR (18,x+2)=5 THEN GO TO 2250
2150 IF y <2)=18 THEN PRINT AT y(2),x(2);“
: LET y(2)=0: LET x(2)=x+9: IF x(2)>30 THEN
LET x*2)=30
2155 IF x <1) >29 THEN PRINT AT y<l),x<l)J“ ":
LET x(1)=0: LET y ( 1)=RND*6+13
2160 PRINT AT y(l),x(l) 5 " " J AT y<2),x<2)5 ,,
2180 LET y(2)=y(2)+2: LET x<2)=x(2)+(x(2)<x+1
)-(x<2)>x+l): LET y(l)=y<l)+RND*i.5-RND*1.5:
LET x(l)=x(l>+RND#1.5: IF y<11>20 THEN LET y
(1)=14
2190 LET x=x-(INKEY*="6" AND x>0)+(INKEY*=" 7"
AND x<28)
2195 GO TO 2120
2200 PLOT x*8+12,17: DRAW 0,57
2202 BEEP .05,-10: BEEP .05,-6
2204 PLOT OVER ljx*8+12,17: DRAW OVER 1J0,5
7
2210 IF ATTR < y (1 > , x < 1 ) ) =4 THEN LET f-f+l: B
EEP .1,-30: PRINT AT y(1),x(l); M ": LET x(l)=
0: LET y<l)=RND*6+13
2220 IF -f = 10 THEN CLS : FOR f = 10 TO 0 STEP -
l: BEEP .05, + : NEXT -f : PRINT ’"Well done! You
consumed 10 fliesand can therefore evolve to
the next stage.": GO TO 8000
2230 RETURN
2250 FOR f = i TO 20: BEEP .01,+: NEXT +: CLS :
PRINT ’“You have been consumed and can evol
ve no +urther.*: GO TO 8000
3000 INK 7: PRINT "You have now evolved to a
beaver"’ INK 6’“In this stage you have to eat
"’ INK 5'“10 +ish be+ore you are eaten by"’ I
NK 4’“the patrolling crab."
3010 PRINT ’“Move using 5-8 and try to eat
the +ish be+ore the +resh-water crab does. Ma
ke sure that you avoid the crab because i+
it comes into contact with you it will ea
t you and you will evolveno further."
Evolution 1 217
3020 PRINT INK 5’“Press ENTER to start.": P£
USE 0: CLS
3030 RESTORE 3040: FOR + =USR "a" TO USR “g"+7
: READ g: POKE + ,g: NEXT -f
3040 DATA 0,0,15,16,224,159,8,12,0,32,220,10,
1,254,16,24
3050 DATA 0,4,59,80,128,127,8,24,0,0,240,8,7,
249,16,43
3060 DATA 0,0,8,61,191,255,255,255,12,30,BIN
10111010,255,255,BIN 10111110,30,12
3065 DATA 195,60,255,126,235,66,165,165
3070 PRINT AT 21,0; PAPER 1 ;“EEEEEEEEEEEEEEEE
EEEEEEEEEEEEEEEE"
3080 FOR +=5 TO 20: PRINT INK li PAPER 1;AT
: next
-f
3085 LET y=20: LET x = 15: LET yl=y: LET xl=x!
LET + =5: LET g=0: LET fl=+: LET gl=g
3087 LET a X= U AB“: LET + i=0: PRINT AT 0,15i+i
3090 IF RND >.95 THEN PRINT BRIGHT li INK RN
D*4 + 3i PAPER 1 ; AT RND-K-15+5, RND-X-29 + 1 i ”E“
3095 IF ATTR (y,x>>64 OR ATTR <y,x+l)>64 THEN
BEEP .1,0: LET -f i=-f i +1 : PRINT AT 0,15i+i: I
F + i = 10 THEN PRINT AT yl,xli INK li PAPER li
INK 4 i FLASH 1 i AT y,xia$; FOR -f = l TO 30
: BEEP .07,RND*20: NEXT + : GO TO. 3250
3098 PRINT AT yl,xli INK li PAPER 1i“ “iAT +
1, gl i " "i INK 4 ; AT y , x i a$ i INK 6 i AT +,gi“6“
3115 LET yl=y: LET xl = x: LET -fl=-f: LET gl=g
3117 IF -f =y THEN IF g=x OR g=x + l THEN FOR f
= 1 TO 20: BEEP .01,-f: NEXT i : GO TO 3300
3120 IF INKEY*=“8" THEN LET a$="/4 S“: LET x = x
+ < 2 AND x < 29)
3130 IF INKEY*="5" THEN LET a.*=“CD“: LET x=x
-<2 AND x>l)
3140 IF INKEY*=*“7“ THEN IF y>5 THEN LET y=y
-1
3150 IF INKEY*=”6" THEN LET y=y+(y<20)
3160 LET -f = INT < -f +RND*1.5-RND*l. 5+ (i < y) - (-f >y)
): LET g=g +1
3170 IF -f < 5 OR i >20 THEN LET -f=(20 AND +>20)
+ < 5 AND + < 5 )
3180 IF g=31 THEN LET g=0
218 Evolution 1
3190 GO TO 3090
3250 CLS : PRINT ’"Well done! You survived as
a beaver and you can continue to the nex
t stage i i you wish."
3260 GO TO 8000
3300 CLS : PRINT '"Bad luck! You can evolve n
o" ’ INK 6’“-further because you have been"’ IN
K 5’"destroyed by the crab.": GO TO 8000
8000 PRINT ’"Press the key which corresponds
to what you want to do next."
8010 PRINT INK 6' “1. .. .Amoeba stage. “ ’ ’"2...
.Frog stage.“’’"3. ... Beaver stage. "' ' "4....Lo
ad stages 4fc5. " ’ ’ "5. . . . Exi t -from the program.
8020 IF
8030 IF
8040 IF
8050 IF
8060 IF
8070 IF
8080 GO
INKEY*="" THEN
INKEY*="1" THEN
INKEY$=“2“ THEN
INKEY*="3" THEN
INKEY$=“4" THEN
INKEY$=“5“ THEN
TO 8020
GO TO 8020
CLS : RUN 130
CLS : GO TO 2000
CLS : GO TO 3000
LOAD "“
STOP
219
Evolution 2
In the second program in this suite the player is transformed into a frog
which has to dodge from side to side avoiding capture by birds whilst
zapping the required number of airborne flies with its tongue. There is
no fairy princess as a reward for this one but instant promotion into the
form of a beaver in the third program, in which you must swim around
and capture ten fish whilst avoiding contact with a vicious crab.
Evolution 2 contains two programs. In the first, the player controls a
large gorilla which lumbers round a forest collecting bananas which drop
randomly to the ground. The computer controls a small and extremely
agile monkey which makes for very tough competition.
The second program in this section puts you in control of a caveman who
tries to kill raiders attacking his territory from surrounding caves by
firing arrows.
1 REM DEVOLUTION 2*
5 BORDER 0: INK 7: PAPER 0: CLS
10 PRINT ’“I-f you have tried the previous
program this will be the 4th stage in the
evolution sequence."
20 PRINT INK 6’"I-f you haven’ t then the ob
ject is to evolve as -far as possible in a ro
le-playing series o-f different programs."
30 PRINT INK 5’"In this stage you play the
part o-f a gorilla who competes against
a smaller monkey who is faster than you."
40 PRINT INK 4’"You have to eat only 10 ou
t of 40 bananas which are placed in the for
est in random positions, but the monkey likes
bananas as well!"
50 PRINT ’"Press ENTER to continue.": PAUSE
0: CLS
60 PRINT ’“Move with 5-8, but note that you
cannot go through the trees."
70 PRINT INK 6’"You pick up a banana by al
igningthe top half of your body with the ban
ana. "
220 Evolution 2
80 PRINT ’ INK 5 ’"Press ENTER to start.”: P
AUSE 0: BORDER 4: PAPER 4: INK 0: CLS
90 RESTORE 110
100 FOR 1 =USR "a" TO USR "h'' + 7: READ g: POKE
f,g: NEXT -f
110 DATA 64,99,101,51,63,31,13,7,0,192,160,1
92,248,252,190,231
120 DATA 7,7,7,14,12,12,12,28,227,225,224,11
2,48,48,48,56
130 DATA 2,2,6,14,28,56,240,0,25,25,255,188,
152,60,36,102
140 DATA 247,195,129,1,0,128,129,195,231,231
,231,231,231,231,231,231
200 FOR 1=0 TO 31: PRINT AT 0,1i INK 4; PAPE
R 2 ; " <3 ” ; AT 20, -f PAPER 1 i AT 1, -f ; n H " ; AT 21
, -f; *H a : NEXT -f
210 FOR -f =2 TO IS STEP 2: PRINT INK 4j PAPE
R 25AT 1 ,0; "GG“ ; AT -f , 30; "6(5 ” ! AT -f + 1,0; PAPER
l; “ HH M ; AT f + 1,30; "/V/y": next -f
220 RANDOMIZE
230 FOR -f = l TO 12: LET x=RND#27+2: LET y=RND
*16 + 2: PRINT PAPER 2; INK 4;AT y,x;"<S”;AT y +
l j x; PAPER NEXT 1 .
240 LET g=2: LET 1=2: LET gl=g: LET -fl=-f: LE
T y=18: LET x=28: LET yl=y: LET xl=x
250 LET b=40: LET s=0
260 LET by=INT <RND*15+2): LET bx=INT <RND*2
6 + 2 )
265 IF SCREEN* <by,bx)<>“ " THEN GO TO 260
270 PRINT INK 6;AT by,bx;ӣ"
2S0 PRINT INK 7;AT 0,3;b;AT 0,28;s
300 PRINT AT y1,x1; " ”;AT yl + l,xl;" ";AT y
, x ; " AB“ ; AT y + 1, x ; "CD" ; AT -fi,gl;“ “ ; AT 1, g;"F"
i INK 6;AT by,bx; "S"
320 IF y=by THEN IF x=bx OR x+l=bx THEN GO
SUB 650
330 IF 1 =by THEN IF g=bx THEN LET b=b-l: P
RINT AT 0,3; INK 7;b;" ”: BEEP .1,-10: GO SUB
655
335 LET yl=y: LET xl=x
340 LET -f 1 =-f : LET gl=g
350 LET y=y +( INKEY*="6” AND y<18)-(INKEV*="7
■ AND y >2)5 LET x = x+(INKEY*=”8” AND x<28)-(IN
Evolution2 221
KEY*="5" AND x>2)
360 IF ATTR <y,x)<23 OR ATTR <y+l,x)<23 OR A
TTR (y,x+1)<23 OR ATTR (y+l,x+l)<23 THEN LET
y=y 1: LET x = xl
380 LET f=f + <4 <by)-<f>by): LET g=g+<g<bx)-<g
>bx)
390 IF ATTR <f,g><23 THEN LET f = INT (-fl + RND
#1.5-RND*l.5)I LET g=INT (gl+RND*1.5-RND*l.5)
: GO TO 390
500 GO TO 300
650 LET s=s+1: LET b=b-l: PRINT INK 7;AT 0,
3!bI * ";AT 0,285s
652 BEEP .1,10
655 IF s=10 THEN GO TO 300
657 IF b=0 THEN GO TO 700
660 LET by=INT (RND*15+2): LET bx“INT (RND*2
6 + 2 )
665 IF SCREEN* (by,bx)<>" u THEN GO TO 660
670 PRINT INK 6JAT by,bxl"£"
680 RETURN
700 BORDER 0: PAPER 0: INK 7: CLS
710 PRINT *“Bad luck! You are not fast
enough to progress any -further in evolution.
760 GO TO 1810
800 BORDER 0: INK 7: PAPER 0: CLS : PRINT ’"
Well done! You managed to eat the bananas b
e-fore you starved and therefore you can proc
eed to the next stage."
900 GO TO 1810
1000 PRINT ’"The object here is to stop other
cavemen from attacking your cave"' INK 5’"You
r cave is in the middle of 8 others, and from
any of these can corne rivals who are prepa
redto kill you in order to steal your prope
rty. *
1010 PRINT INK 5’"You can spin round with 6
and 7 and throw a spear with 0. You have su
ccessfully defended your cave when 30 attacks
have been made. However, you are given 3 1
ives to make your task easier."
1020 PRINT INK 4’"Press ENTER to start."
222 Evolution 2
1030 PAUSE 0: CLS
1040 RESTORE 1050: FOR -f=USR "a" TO USR "i"+7
: READ g: POKE -f,g: NEXT -f
1050 DATA 8,28,8,3,8,8,8,8,0,6,6,8,16,32,64,0
,0,0,2,255,2,0,0,0,0,64,32,16,8,6,6,0
1060 DATA 8,8,8,8,8,8,28,3,0,2,4,8,16,96,96,0
,0,0,64,255,64,0,0,0,0,96,96,16,8,4,2,0
1070 DATA 28,28,8,62,3,28,20,20
1075 FOR -f = l TO 6 : READ s,c: PRINT AT s,cj IN
K RND*5+2;“ “ 5 AT s+l,c;“ ■: NEXT -f : PRINT
INK RND#5+2iAT 9,0;" " ; TAB 30;" ";AT 11,0
i" M ;TAB 30;“
1077 DATA 1,5,1,14,1,23,20,3,20,25,20,14
1079 PRINT INK 4 5 AT 8,14;“ " ; AT 9,13;"
“5 AT 11, 13; “ ")AT 12,14;*
1080 LET q=l
1085 PRINT AT 0,0;“LIVES: 77“
1090 LET a *=“ABCD£fGH": LET a=l: LET s=0: LET
c =0
1091 LET k=0
1092 PRINT AT 0,21;“ATTEMPTS:";c: IF c=30 THE
N GO TO 1700
1095 GO SUB (INT <RND*8)*10)+1400
1100 PRINT AT 10,15; INK 4;a*(a)
1110 PRINT AT y,x;“ “: LET y=y+dy: LET x=x+dx
: PRINT AT y, x ; INK 5; “7“
1115 IF y=10 THEN IF x=15 THEN GO TO 1600
1120 IF s THEN PRINT AT +, 9 ;“ “: LET -f=-f+dy2
: LET g=g+dx2: PRINT AT -f,g; INK 3jb*
1130 IF s THEN IF <-f=y AND x=g) OR <-f+dy2=y
AND g+dx2=x) THEN PRINT AT f,g;“ “: FOR w=7
TO 0 STEP -1: PRINT INK w}AT y,x;“7": BEEP
02,-f: NEXT w: LET s=0: LET c=c + l: GO TO 1092
1140 BEEP 1/<c+20),(y+x)/2
1200 LET a=a+(INKEY*=“7" AND a<8)-<7 AND INKE
Y¥="7“ AND a* 8 )-(INKEY*= H 6 n AND a>l)+<7 AND I
NKEY*=“ 6 “ AND a=l)
1210 IF INKEY*= ,, 0" THEN IF 5=0 THEN LET b*=
a*(a): LET -f = 10 : LET g=15: LET s-1: GO SUB 15
10 +a *10
1300 GO TO 1100
1400 LET y=q: LET x= 6 : LET dy=q: LET dx=q: RE
TURN
Evolution2 223
1410
LET
y=q: LET x=15: LET dy=q: LET dx=0: R
ETURN
1420
LET
y= q: LET x=24: LET dy=q: LET dx=-q:
RETURN
1430
LET
y=10:
LET X=31: LET dy=0:
LET dx=-q:
RETURN
1440
LET
y=21:
LET x=26: LET dy=-q:
LET dx=-q
: RETURN
1450
LET
y-2l:
LET x=15: LET dy=-q:
LET dx*0:
RETURN
1460
LET
y=2l:
LET x=4: LET dy=-q:
LET dx=q:
RETURN
1470
LET
y=10:
LET x=0: LET dy=0: LET dx=q: R
ETURN
1520
LET
dy2=-J
L: LET dx2=0: RETURN
1530
LET
dy2=-J
l: let dx2=i: return
1540
LET
dy2-0
LET dx2-l: RETURN
1550
LET
dy2=l
LET dx2*l: RETURN
1560
LET
dy2= 1
LET dx2=0: RETURN
1570
LET
dy2=l
LET dx2=-1: RETURN
1580
LET
dy2=0
LET dx2=-1: RETURN
1590
LET
dy2=-
l : LET dx2=>-l: RETURN
1600 PRINT AT *, 9 ;" "» FLASH 1iAT y,x;"7": FO
R f = l TO 20: BEEP .01,*: BEEP .01,10-+: NEXT
*: PRINT AT y, x ;a$ < a) : LET k=k+l: PRINT AT 0,
k + 6;“ *
1605 IF k*=3 THEN GO TO 1800
1607 LET s=0
1610 GO TO 1092
1700 CLS : PRINT “Well done! De+ending your c
ave was not easy, but you did very well and
you can evolve further if you wish to."
1710 GO TO 1810
1800 CLS : PRINT "Bad luck! You failed in you
r attempt to defend your cave.“
1810 PRINT INK 4'“Press the key which corres
ponds to what you want to do next."
1820 PRINT INK 5*"1...Start the gorilla stag
e.*’*"2...Start the caveman stage.“’’"3...Loa
d the 6 th stage."’’"4...Exit from the program
1830 IF INKEY*=“" THEN GO TO 1830
1840 IF INKEY*=“1" THEN CLS : GO TO 30
224 Evolution 2
1850 IF INKEY*="2" THEN CLS : GO TO 1000
1860 IF INKEYS="3 U THEN LOAD "“
1870 IF INKEY$= H 4" THEN STOP
1880 GO TO 1830
225
Evolution 3
Evolution 3 is the logical culmination of survival conditioning. As the
leader of the superpower of your choice you must destroy your enemy’s
capitals with cruise missiles before you are destroyed by one of their
ICBM’s. To do this you have a very short time to pre-program the flight
of your missile with a series of direction codes as the enemy’s missile
moves towards your capital. The screen features a map of the world on
which the missile courses are plotted.
1 BORDER 0: PAPER 0: INK 7: CLS
3 POKE 23653,10
5 REM @ P.Stanley
10 DATA 0,8,28,8,8,62,0,0,0,32,36,62,36,32,
0,0,0,62,8,8,28,8,0,0,0,2,18,62,18,2,0,0
15 DATA 128,128,128,128,128,128,128,255,128
,128,128,156,156,128,128,255
17 DATA 127,127,127,127,127,127,127,0
20 FOR y=USR "a" TO USR "g"+7: READ x: POKE
y,x: NEXT y
30 DATA "LONDON",3,13,"MOSCOW",5,24,"BONN",
7,17, "WASHINGTON" ,3,3, "BRASILIA" , 17, <4, “TOKYO"
,9,28,"RIYADH",12,17,"CANBERRA",13,29,"PEKING
", 9,25, “PRETORIA",17,14
60 PRINT "This is the 3rd and -final s
ection in the series of evolution prog
rams."’ INK 5’“This one involves a nuclear wa
r, where you can play the part o-f P.M. of any
of 10 superpowers which may exist in 2002
(the year in which this war takes place
70 PRINT INK 6’"The object is to program c
ruise missiles to home in on the enemies
' capitals."
80 PRINT INVERSE l’"Press any key to read
more.": PAUSE 0: CLS
90 PRINT "In 2002 the World is not very d
ifferent from the previous 20 years, apart f
rom new superpowerforces exist. South America
has been over-run by Brazil and its capital
226 Evolution 3
is Brasilia."’ INK 5’"Japan has become a powe
r-ful nation, and the Arabs have a -figh
ting nation based around Riyadh. Also Aust
ralia (k South A-frica are superpowers.”
95 INPUT "Enter a skill level (30-100). 3
0 is the hardest: ";s k
97 IF sk < 30 OR sk>100 THEN GO TO 95
100 PRINT '“In which capital do you want to
be P.M. ? (You only need to typethe -first 2 c
haracters.)“
101 RANDONIZE
105 LET i%="
110 PRINT : FOR -f = l TO 10: READ a$,y,x: PRIN
T a*,: NEXT i
120 INPUT a*: IF LEN a$<2 THEN GO TO 120
130 RESTORE 30: FOR f=l TO 10: READ b$,y,x:
IF bS(i TO 2><>a$(l TO 2) THEN NEXT -f
135 IF b*(l TO 2)< >a$(1 TO 2) THEN GO TO 12
0
136 LET v = y: LET u = x: LET e*="4": LET -f*(-f) =
“X"
137 RESTORE 30
138 LET i = I NT <RND*10)+1: IF -f * ( i ) < > “X " THEN
FOR -f = i TO i: READ b$,y2,x2: NEXT i : GO TO
140
139 GO TO 138
140 LET sc=i: CLS : PRINT "The way you progr
am your missileis by compass directions <ie n
,s,w and e). The world map is divided int
o squares, and each step o-f the program move
s the missile 1 square."
145 LET -f* ( i ) ="X"
150 PRINT INK 5’“For example ""nnees"" move
s the missile 2 squares up, 2 right and 1
down."’ INK 6 ’ " I -f the missile goes o-f-f the
screen at any side it will appear on
the opposite side."
151 PRINT INK 4’"The red square is your tar
get"
155 PRINT '"You must enter your program as
quickly as possible . When it isready press F
to launch a nuke."
160 PAPER 0: INK 5: PRINT AT 21,0; "Press a k
Evolution3 227
ey to begin": PAUSE 0: CLS : GO SUB 9000
170 PRINT AT y2,x2; INK 2; FLASH 1ii INK
6; INK 0i PAPER 3!AT y,xi"E“: LET yl=y2: LET
xl=x2: LET d$="/9"
175 DIM c*(50): LET c=l
180 LET c$=”“: PRINT INK 7;AT 21,0;"Enter p
rograra after the tone."
185 FOR -f = l TO 150: NEXT i : PRINT AT 21,05"
" : BEEP .1,10
190 LET C1=C
195 FOR f = l TO sK: IF INKEY$= 11 11 THEN NEXT f
200 IF INKEY$="N" THEN LET c$(c)="N": LET c
= c+l
210 IF INKEY*=*'S" THEN LET c$<c) = "S“ : LET c
=c +1
220 IF INKEY$="W" THEN LET <c)="W" : LET c
= c + l
230 IF INKEY$="E" THEN LET c$(c)="E": LET c
235 IF INKEY*="F" OR c=51 THEN PRINT AT 21,
0;“ “: BEEP .1
,20: GO TO 600
240 IF cl=c THEN GO SUB 500: GO TO 190
250 PRINT INK RND*4+3;AT 21,(c-l AND c<33)+
(c-33 AND c>=33>5c$(c-i)
255 IF c=32 THEN PRINT AT 21,05"
260 BEEP .1,0
270 GO TO 190
500 PRINT AT y1,x15 OVER lid$; OVER 0;AT y2,
x2 5 INK 2;
510 IF y1< y THEN LET yl=yl + l: LET d*="C"
520 IF y 1 >y THEN LET yl=yl-l: LET d$= M /?"
530 IF x1< x THEN LET xl=xi + l: LET d$="5"
540 IF x1>x THEN LET xl = xl-l: LET d %=“D"
550 PRINT INK 3i FLASH li BRIGHT 1 5 AT yl,xl
5 OVER l;d$
555 IF y1=y THEN IF xl=x THEN GO TO 900
557 BEEP .06,25: BEEP .06,27
560 RETURN
600 LET c=l
602 PRINT AT v,u; OVER lie$
605 FOR -f = l TO 3: PRINT AT y,x5 INK 65 FLASH
228 Evolution 3
15 PAPER 0; H F"5 FLASH 0;AT v,ai INK 5; OVER
lie*
610 LET v=v+<c3>(c)="S")-<c$<c)="N") : LET u=u
+(cS(c)="E“)-(c$(c)= n W")
615 LET e$=*": LET e*=e$+("C" AND c*<c)="S")
+ <"-4" AND c$(c)="N“) + ( ,, fl” AND c$ (c ) = "E" ) + < "D"
AND c$(c)="W")
620 IF v=-l THEN LET v=20
630 IF v-21 THEN LET v=0
640 IF u=-l THEN LET u=31
650 IF u*=32 THEN LET u=0
660 IF v=y2 THEN IF a=x2 THEN GO TO 2000
670 PRINT OVER 1; INK 7; BRIGHT 1;AT v,uie$
671 LET c=c + l : IF c<51 THEN IF c$(c)O l, N" A
ND c*(c)<>"W“ AND c*(c)<>"E" AND c*(c)<>"S" T
HEN LET c-l: GO TO 800
672 IF c=51 THEN GO TO 800
675 FOR i=20 TO 30: BEEP .001,i: NEXT i
680 NEXT -f
690 GO SUB 500
700 GO TO 605
800 PRINT OVER 1 i AT v,u;e$
810 LET c = l: LET v=y: LET u=x
830 GO TO 180
900 PRINT INK 7;AT 21,05"You have been dest
rayed": FOR -f«l TO 20: PRINT AT y,x; INK RND*
6+15 BEEP .05,-f*3: NEXT -f : INPUT "Want an
other go? (Y/N) *; -f*
905 PRINT AT 21,0;“
906 GO SUB 9000
907 LET sc=l
910 IF •f*<l)*"N" THEN STOP
915 INPUT AT 0,05“Enter a skill level (30-10
0). 30 is the hardest: ";sk
917 IF sk < 30 OR sk >100 THEN GO TO 915
920 INPUT AT 0,0; "Want to see the names?" ;-f*
: IF -f * ( 1 ) = "N" THEN GO TO 950
930 RESTORE 30: FOR -f = l TO 10: BEEP .05,-20:
READ f$,y,x: PRINT INK RND-X-3 + 4 5 AT 21,05-f*!"
" : FOR y=l TO 70: NEXT y: NEXT -f
950 LET -f$="
960 INPUT AT 0,0;"Which capita1?"5 a*: IF LEN
Evolution 3 229
a*<2 THEN GO TO 960
970 RESTORE 30: FOR -f = i TO 10: READ b$,y,x:
IF b»(l TO 2)<>a$(l TO 2) THEN NEXT i: GO TO
960
975 LET -f ^ (-f ) = " X ■*
980 LET c=i: LET c*="": LET v=y: LET u=x
990 LET i=INT <RND*10)+i: IF i $(i)<>“X" THEN
RESTORE 30: FOR -f = l TO i: READ b$,y2,x2: NE
XT -f: LET -f* ( i ) = ,, X" : GO TO 170
1000 GO TO 990
2000 IF sc=9 THEN LET i=5: GO TO 2015
2010 LET i=INT <RND*10)+l: IF +*(i)= n X" THEN
GO TO 2010
2015 LET sc=sc+i : LET -f* ( i ) = ,, X M : PRINT INK 7
:AT 21,0;b$) H has been destroyed": FOR t=l TO
4: FOR s=7 TO 0 STEP -1: PRINT AT y2,x2; INK
s;“1”: BEEP .03,S*7: NEXT s: NEXT i
2016 IF sc=10 THEN GO TO 4000
2017 PRINT AT yl,xl| OVER i}d$
2020 PRINT INVERSE 1 ; AT y2,x2> “iT" : LET c-l:
LET c$=““: LET v=y: LET u = x: RESTORE 30: FOR
-f = l TO i: READ b*,y2,x2: NEXT i: PRINT FLASH
1;AT y2,x2; INK 2;"i": LET yl=y2: LET xl=x2
2025 PRINT AT 21,31}“ "
2030 GO TO 180
4000 PRINT INVERSE 1;AT y2,x2} u r": PRINT AT
21 , 0 }*
4005 INK 2: FLASH 1: BRIGHT 1: GO SUB 9000: I
NK 5: FLASH 0: BRIGHT 0: PRINT AT 9,0}"CONGRA
TULATIONS - YOU NOW RULE THE WHOLE WORLD <WE
LL WHAT'S LEFT AFTER YOUR NUKES' WORK!)
4010 FOR t=l TO 3: FOR g =12 TO 20 STEP 2: BEE
P .07,g: NEXT g: FOR g=18 TO 10 STEP -2: BEEP
. 07, g: NEXT g: NEXT -f
4020 PRINT " P
RESS Y TO TRY AGAIN, ELSE N....“
4025 IF INKEY$= M " THEN GO TO 4025
4030 IF INKEY$="Y“ THEN GO SUB 9000: PRINT A
T 21,0}“ GO
TO 915
4040 STOP
9000 PRINT AT 0,0} n £EEEEEGGG6G£EE£E££££G3G£6£
230 Evolution 3
££££££EE££££663G3££££££EGSG6G3S3SG£££££££E£££
633£££££66333336633333G633£63££££3EEEEEG33333
366GG66GSGG6G£3G£££££££G££££GGGG63G66GGGG£££G
GS3S£££££££££££SGG33GSSG33G6£££ U
9010 PRINT U GG6GG6£££££££££3S3GGGGGGGGGGG£££G
G6GSGEEEEEE M£3GG33G3SGGGGSG3££GS3S£££££££££G
£GGG66GG66GGG£££££GGG£££££££££££GG333GGGG6GGG
£G£££G66£££££££££GS3GGG3SGG3GGG3£G£££6£3£££££
££££GG£66GG3GGG£££££££££G£££££££££££ EGG £EG
GEEGEEEGEEESGEEEEEEEEEGGGGGEGEEEGEEEEGEEGEE"
9020 PRINT u £6GGG£££££GGGGG3S££££££££££££££££
EGG6G£££££GG336GE£EE£££££G£G£EEE3GGGG£EE££££G
GdG£££££££GGGGGG££E£GGGG££E££E£6S6EG£E£££3GGG
GGGG£££E6G££££££££GGG££££££££GGGGSG£££E£GG£££
££££££G££££££E££G£E£GG£££££G£££££££££££££££££
£££££££££££"
9030 PLOT 255,8: DRAW 0,167: DRAW -255,0
9040 RESTORE 30: FOR T=1 TO 10: READ a$,b,a:
PRINT AT b,aJ ": NEXT -f: RETURN
231
Exocet
It’s time to play the Falklands all over again. A group of enemy ships
randomly make their way across the horizon, and it’s up to you to sink as
many of them as possible by firing missiles using the zero key. A mobile
sight is printed slightly below the line of the horizon. There are three
sizes of enemy ships, and the smaller the target the more points you score
for a hit. Occasionally the enemy’s electronic defence system will succeed
in confusing your missile and deflecting it from its course.
1 REM Exocet @ Robert ErsUine 1983
5 60 SUB 9000
10 GO SUB 4000
15 GO SUB 1000
20 GO SUB 1170
30 LET hs=0
40 RANDOMIZE
50 INK 0
100 FOR x = l TO < LEN S$-32>
110 IF LEN S*<x TO LEN S*)>31 THEN PRINT I
NK 0; PAPER 5 5 AT 10,0;S*<x TO x + 31)
115 PRINT PAPER 1; INK 7JAT LIN,COL;" *
120 IF INKEY*=“z“ AND FLAG=0 AND COL>0 THEN
LET COL=COL-l: LET T=T-3
130 IF INKEY*="x" AND FLAG=0 AND C0L<26 THEN
LET C6L=C0L+l: LET T=T+8
134 PRINT PAPER 1; INK 7;AT LIN,COL;"+"
135 IF FLAG=1 THEN GO TO 170
140 IF INKEY*<>"0" THEN GO TO 200
150 LET L=0: LET D=l: LET FLAG=1: LET Y=127
160 LET EX=EX-1
170 PLOT INK 1; OVER l;Y,L
172 LET LL=L! LET YY=Y
175 BEEP .03,0
176 IF L > = 112 THEN LET D=0
177 IF RND >.8 THEN GO TO 190
180 LET L=L+ < 8 AND D=l)-<8 AND D=0)
182 LET Y=Y +(ABS <Y-T>/2 AND T>Y)-(ABS (Y-T)
/2 AND T< Y)
190 PLOT OVER 1;YY,LL
232 Exocet
195 IF L< =95 AND D=0 THEN 60 SUB 6000
200 IF FLAG=0 THEN PAUSE 5
202 IF EX< 0 THEN GO TO 3000
205 NEXT x
210 GO TO 3000
1000 PAPER l: CLS : LET LIN=11: LET C0L=15: L
ET T=123: LET FLAG=0: LET EX=10
1100 FOR X=0 TO 10
1120 FOR y=0 TO 31
1130 PRINT PAPER 5; INK 1;AT x, y \ " “
1140 NEXT y
1150 NEXT x
1160 RETURN
1170 DIM G$(10,6)
1180 LET G$(l)= u /9
1190 LET G*( 2 ) = "BC
1200 LET G*(3)=" DEF "
1210 FOR x=4 TO 10
1220 LET GS(x>="
1230 NEXT x
1235 LET Q$="
LET S$=Q*
1240 FOR x=l TO 100
1250 LET S$=S*+G*<INT <RND*10)+1)
1260 NEXT x
1270 LET sc=0: LET S*=SS+Q*
1280 RETURN
3000 PAPER 0: INK 5: CLS : PRINT AT 10 > 6! ,, Yqu
r score was "; sc
3010 LET sc=0: LET EX=10
3020 PRINT AT 20,3;"Press any key to restart*'
3025 INK 0
3030 IF INKEY*="'* THEN GO TO 3030
3040 GO SUB 1000
3045 GO SUB 1170
3050 GO TO 100
4000 BORDER 0: INK 5: PAPER 0: CLS : PRINT AT
1, 125 "EXOCET"
4010 PRINT
4020 PRINT "The object o-f this game is to '*, “
sink the enemy ships with Exocetmissi1es as t
hey cross the ","horizon"
4030 PRINT
4040 PRINT '* z = move sight le-ft": PRINT
Exocet 233
4050 PRINT
move sight right": PRINT
4060 PRINT
4070 PRINT
0 = -fire missile": PRINT
hit on D£F scores 10": PRINT
4080 PRINT " hit on BC scores 20”: PRINT
4085 PRINT " hit on 4 scores 30"
4090 PRINT AT 21,4;"Press any key to start"
4200 IF INKEY*=“" THEN GO TO 4200
4210 RETURN
6000 IF POINT <Y,88)=0 THEN GO TO 6060
6010 IF S*(x+C0L)="4" THEN LET sc=sc+30
6020 IF S$ ( x + COL TO x+ (COL + 1 ) ) =”BC" OR S*s(x+<
COL-1) TO x+COL) = U BC" THEN LET sc=sc+20
6025 IF SS ( x + COL TO x+ (COL+2) ) ="D£F U OR S*(x +
(COL-1) TO x+(COL+1) > ="DEF* OR S$(x+(C0L-2> T
O x+COL) D£F“ THEN LET sc*sc+10
6030 RESTORE 6039
6031 FOR z=l TO 15: BEEP .03,-20
6032 PLOT Y,L: READ YY: READ LL: DRAW INK 2;
YY, LL
6033 NEXT z
6039 DATA -4,4,-4,5,-3,6,-3,7,-2,8,-2,9,-1,10
,0,11,1,10,2,9,2,8,3,7,3,6,4,5,4,4
6050 LET S*=S$<1 TO x-l)+S$(x TO (x+(C0L-3)))
+" “+S*(<x+(COL+3)> TO LEN S*>
6060 LET FLAG=0
6085 PRINT PAPER 5;AT LIN-2,C0L;" "iAT LIN-1
,COLi" "
6110 IF sc >hs THEN LET hs=sc
6120 PRINT PAPER 5; INK 0;AT 0,0;"SCORE:";sc
EXOS:";EX;" HIGH SCORE:";hs
6130 RETURN
9000 RESTORE 9000: FOR u=USR "a" TO USR "a"+4
7
9010 READ g
9020 POKE u,g
9030 NEXT u
9040 DATA 0,0,0,0,0,0,16,255
9050 DATA 0,0,0,0,1,39,255,127,0,0,0,0,128,23
0,255,254
9060 DATA 0,0,0,0,1,255,127,63,0,24,60,63,255
,255,255,255,0,0,0,0,192,255,254,252
9070 RETURN
234
Energy Field
Y ou are at the edge of Time, closely pursued by a fleet of alien craft who
are out to steal your ship’s power. However you have a trick or two up
your sleeve. You have the capacity to guard the ends of the time tunnel
by setting up energy fields at each of the four open ends of the system. If
you attempt to set up a force field anywhere other than at the ends of the
time tunnel, the force will feedback and destroy you. Likewise, if you set
up a field at the end of an unoccupied tunnel you are finished. Passive
cruiser commanders who allow too many aliens through will find then-
power drained and the game over.
1 BORDER 0! PAPER 0: INK 7: CLS
2 REM @ PAUL STANLEY
5 GO SUB 9800
7 60 SUB 9840
8 LET h=0
10 60 SUB 8000
20 60 SUB 9000
25 PRINT AT 0,28;h
30 OVER 1
35 PRINT INK 3; AT
39 IF 1i<=1 THEN 60 TO 7000
40 LET p=p-.05: PRINT OVER 0;AT 0,0;s: LET
g=l: 60 TO (INT <RND*4)+1)*100
60 FOR d-1 TO p; PRINT INK 7;AT y,x|"/97"
65 IF INKEY$="1" THEN LET x=x+l: LET y = y-l
70 IF INKEYS= 11 2" THEN LET x = x + l: LET y=y+l
75 IF y=-1 THEN LET y=21
80 IF y=22 THEN LET y=i
83 IF x = -i THEN LET x=*31
87 IF x=31 THEN LET x-0
90 PRINT INK 3iAT y,xS*'A'7"
92 IF INKEY$= ,, 0" THEN IF g THEN 60 SUB 10
00
93 NEXT d
95 RETURN
100 LET o=s: FOR -f = l TO 4
105 LET a=1
110 PRINT AT 10+2*f,15; INK 5i< i)
Energy Field 235
115 60 SUB 60
120 BEEP .04,+
130 PRINT AT 10+2*+ , 15;a*<+ ) 5 AT 11 + 2*+, 15, I
NK 5;a$<+)
135 GO SUB 60
140 BEEP .04,+
150 PRINT AT 11+2*+,15;a$<+)
160 NEXT +
165 IF sOo THEN PRINT FLASH 1 ; AT 11+2*+, 1
5 i INK .6} “ i/" : BEEP .1,-30: BEEP .1,-28: BEEP
.1,-26: BEEP .1,-28: BEEP .1,-30: PRINT AT 11
+ 2*+ , 15; INK 75 V*
167 IF s=d THEN LET 1i=1i-.2: PRINT AT 21,2
7; over 0;int li;"
170 GO TO 39
200 LET o=s: FOR +=1 TO 4
205 LET a=2
210 PRINT AT 11-2*+,165 INK 3;a$<+)
215 GO SUB 60
220 BEEP .04,+
230 PRINT AT 11-2*+,16;a*(+);AT 10-2*+,16; I
NK 3;a*<+)
235 GO SUB 60
240 BEEP .04,+
250 PRINT AT 10-2*+,16;a*(+)
260 NEXT +
265 IF sOo THEN PRINT FLASH 1; AT 10-2*+, 1
65 INK 6i "J m : BEEP .1,-30: BEEP .1,-28: BEEP
.1,-26: BEEP .1,-28: BEEP .1,-30: PRINT AT 10
-2*+,165 INK 7; “J m
267 IF s—o THEN LET 1i=1i-.2: PRINT AT 21,2
7; OVER 0!INT 1i5"
270 GO TO 39
300 LET o=s: FOR +=1 TO 5
305 LET a=3
310 PRINT AT 10,15-2*+} INK 45b*<+)
315 GO SUB 60
320 BEEP .04,+*6
330 PRINT AT 10,15-2*+5b*(+);AT 10,14-2*+; I
NK 4;b#(+ J
335 GO SUB 60
340 BEEP .04,+*6
350 PRINT AT 10,14-2*+5b*<+)
360 NEXT +
236 Energy Field
365 IF sOo THEN PRINT FLASH HAT 10,14-2*
■M INK 6i“J": BEEP .1,-30: BEEP .1,-28: BEEP
.1,-26: BEEP .1,-28: BEEP .1,-30: PRINT AT 10
, 14-2*-f ', INK 75 *V"
367 IF s=o THEN LET 1i=li-.2: PRINT AT 21,2
7i OVER 05INT 1i5"
370 60 TO 39
400 LET o=s.' FOR -f*=i TO 5
405 LET a=4
410 PRINT AT 11 , 16+2*f 5 INK 65b*(-f)
415 GO SUB 60
420 BEEP . 04 , -f *6
430 PRINT AT 11, 16 + 2** 5 b$ < -f ) 5 AT 11,17+2**5 I
NK 6 5 bS(-f)
435 GO SUB 60
440 BEEP . 04, -f *6
450 PRINT AT 11, 1 7 + 2*-f 5 b$ ( i )
460 NEXT i
465 IF sOo THEN PRINT FLASH 1 5 AT 11,17 + 2*
-ft INK 65 “J“: BEEP .1,-30: BEEP .1,-28: BEEP
.1,-26: BEEP .1,-28: BEEP .1,-30: PRINT AT 11
,17 + 2*f5 INK 75 "J"
467 IF s=o THEN LET li=li-.2: PRINT AT 21,2
7i OVER 05INT 1i5 “
470 GO TO 39
1000 IF x<6 THEN GO TO 1100
1010 IF x >9 AND x<22 THEN GO TO 1200
1020 IF NOT x >24 THEN GO TO 2000
1030 IF x >29 OR y<2 OR y>19 THEN GO TO 2000
1040 FOR q-2 TO 19: PRINT PAPER 3|AT q,27|"
“: NEXT q
1050 BEEP .03,-10: BEEP .03,-13: BEEP .03,-15
: BEEP .03,-10
1060 FOR q=2 TO 19: PRINT PAPER 0}AT q,275"
“: NEXT q
1065 IF a< >4 THEN GO TO 2000
1070 LET s=s+20
1080 LET g=0
1090 RETURN
1100 IF x<l OR y< 2 OR y>19 THEN GO TO 2000
1110 FOR q=2 TO 19: PRINT PAPER 35AT q,2j"
": NEXT q
1120 BEEP .03,-10: BEEP .03,-13: BEEP .03,-15
: BEEP .03,-10
Energy Field 237
1130 FOR q=2 TO 19: PRINT PAPER 0 }AT q,2;“
NEXT q
1135 IF a< >3 THEN GO TO 2000
1140 LET 3=5+20
1150 LET g=0
1160 RETURN
1200 IF y>10 THEN GO TO 1300
1210 IF y<1 OR y >3 THEN GO TO 2000
1220 FOR q=11 TO 20: PRINT PAPER 3;AT l,qS“
“ ; AT 2, qi “ "SAT 3 , q ; " : NEXT q
1230 BEEP .03,-10: BEEP .03,-13: BEEP .03,-15
: BEEP .03,-10
1240 FOR q=i1 TO 20: PRINT PAPER 0;AT l,q5“
“;AT 2,qi “ “5 AT 3,q;" ■ : NEXT q
1245 IF a<>2 THEN GO TO 2000
1250 LET s=s+20
1260 LET g=0
1270 RETURN
1300 IF y >20 OR y<18 THEN GO TO 2000
1310 FOR q=11 TO 20: PRINT PAPER 3> AT 18,qt"
*iAT 19,q;“ “;AT 20,q5" “: NEXT q
1320 BEEP .03,-10: BEEP .03,-13: BEEP .03,-15
: BEEP .03,-10
1330 FOR q=l1 TO 20: PRINT PAPER 05 AT 18,q!"
*iAT 19j qj“ “j AT 20,q;“ “: NEXT q
1335 IF a< >1 THEN GO TO 2000
1340 LET s=s+20
1350 LET g=0
1360 RETURN
2000 PRINT AT y,xi "HI"
2010 FOR r=y TO 21
2020 PRINT AT r,x-l; INK 5j "JJV"
2030 BEEP .001,r
2040 PRINT AT r,x-l; a JJJ a
2050 NEXT r
2060 LET 1i=1i-1: PRINT OVER 0;AT 21,27JINT
1 i ; " “: IF 1i< = 1 THEN GO TO 7000
2065 PRINT AT y,xj "HI"
2070 RETURN
7000 FOR -f = l TO 60: PRINT OVER 0i AT 10,8j IN
K -f/9i INVERSE 1 ; “ G A M E 0 V E R": BEEP .00
1,-f: NEXT -f
7005 IF s>h THEN LET h=s
7100 PRINT OVER 0iAT 21,2;
INVERSE 1!"PRESS
238 Energy Field
ANY KEY TO PLAY AGAIN"
7200 IF INKEY$<>"" THEN RESTORE : CLS : OVER
1 : GO TO 10
7300 GO TO 7200
3000 FOR -f =USR "a" TO USR M j"+7
8010 READ x: POKE i , x: NEXT -f
8020 DATA 40,BIN 01010100,BIN 10111010,124,BI
N 10111010,BIN 01010100,40,0
8030 DATA 0,16,40,BIN 01010100,40,16,0,0
8040 DATA 0,0,0,24,24,0,0,0
8050 DATA 0,0,0,16,0,0,0,0
8060 DATA 255,195,189,189,189,189,195,255
8070 DATA 0,62,54,42,54,62,0,0
8080 DATA 0,0,28,28,28,0,0,0
8090 DATA 96,240,249,239,249,240,96,0
8100 DATA 6,15,159,247,159,15,6,0
8110 DATA BIN 11011010,33,76,195,24,BIN 01100
101,BIN 10010011,BIN 01100100
8250 LET x=i: LET y=i
8300 LET a DCBA"
8350 LET b 9- u DCOF£ u
8400 LET s—0
8410 LET 1 i=3: LET p = 5
8500 RETURN
9000 OVER 0: PLOT 126,93: DRAW 4,0: DRAW 0,-4
: DRAW 4,0: DRAW 0,-4: DRAW -4,0: DRAW 0,-4:
DRAW -4,0: DRAW 0,4: DRAW -4,0: DRAW 0,4: DRA
W 4,0: DRAW 0,4
9010 DRAW -40,77: DRAW 84,0: DRAW 0,-25: DRAW
-84,0: DRAW 0,25: PLOT 86,145: DRAW 40,-52:
DRAW 4,0
9020 DRAW 40,52: DRAW 0,25: DRAW -40,-77
9030 PLOT 126,81: DRAW -40,-77: DRAW 84,0: DR
AW 0,25: DRAW -84,0: DRAW 0,-25: DRAW 0,25: D
RAW 40,52: DRAW 4,0: DRAW 40,-52: DRAW 0,-25:
DRAW -40,77
9040 PLOT 122,89: DRAW -107,71: DRAW 30,0: DR
AW 0,-146: DRAW -30,0: DRAW 0,146: DRAW 30,0:
DRAW 77,-71: DRAW 0,-4: DRAW -107,-71: DRAW
30,0: DRAW 77,71
9050 PLOT 134,89: DRAW 107,71: DRAW -30,0: DR
AW 0,-146: DRAW 30,0: DRAW 0,146: DRAW -30,0:
DRAW -77,-71: DRAW 0,-4: DRAW 107,-71: DRAW
-30,0! DRAW -77,71
Energy Field 239
9500 RETURN
9800 FOR f = l TO 7: FOR G=0 TO F: PRINT INK G
; AT f , f *25 "ENERGY FIELDS": BEEP .03,G: NEXT G
; NEXT F
9835 RETURN
9840 PRINT AT 10,0;“Guard the tube with your
craft by setting up energy shields at the 4
open ends of the system. Attempting to place
a field at any place other than the end
will result in your destruction."
9850 PRINT "Setting one up at a tube not c
ontaining an enemy will result in destruction
also.”
9855 PAUSE 0: CLS : GO SUB 9800
9860 PRINT AT 9,0; "Move with l(up) be 2(down)
but remember that you move right at the sam
e time and going off the screen will place yo
u on the opposite side."
9870 PRINT "Place an energy field at a tube m
outh with 0."’"Letting an enemy past or self-
destruction results in power loss and if
this is too great then the game is over."’
’ INVERSE 15 OVER 1;"Press a key to start": P
AUSE 0: CLS
9880 RETURN
240
Drag Racer
This is a simulation of a drag race. The object of the game is to complete
the quarter mile course in the shortest possible time. You have four gears
and must determine the optimum moment for changing up. If you
change too early, your revs will fall too low and you will lose valuable
time; if you spend too much time in high revs you’ll probably blow your
engine. The rear end ratio of the car is progressively increased with each
succeeding game, and the right moment to change gear becomes
increasingly hard to judge.
1 REM Drag Racer 0 R.ErsUine 1983
5 60 SUB 4000
10 GO SUB 9000
15 60 SUB 9150
20 LET g=l
100 LET I-CODE INKEY*
110 IF 1-109 THEN LET a=a+l
120 IF I>48 AND I<53 THEN LET g-I-48
125 IF t<3 THEN LET rpm=FN a<x): 60 TO 140
130 LET rpm-FN b(x)
140 IF RND>(rpm-6000)/1000 THEN 60 TO 160
150 60 TO 3000
160 LET os-ns
1 70 LET op-np
180 LET tq=FN c<x)
190 LET tqi—17
200 LET ns=FN d < x )
210 LET np=FN e(x>
240 LET t=t+l
260 LET a=FN i (x)
270 LET x-48*SIN a
280 LET y=48#C0S a
285 IF t>i THEN PLOT 152,56: DRAW OVER l|x
*»yy
290 PLOT 152,56; DRAW OVER Ux,y
300 LET xx = x: LET yy=y
310 LET a=FN g(x)
320 LET n=48*SIN a
330 LET o=48*C0S a
340 IF t>i THEN PLOT 49,56: DRAW OVER linn
Drag Racer 241
, DO
350 PLOT 49,56: DRAW OVER l;n,o
360 LET nn=n: LET oo=o
365 PRINT PAPER 5; INK 0;AT 1inl,col 15 "_"
400 LET coll=col1 + INT (<np-op)/cl)
410 IF col 1 >31 AND linl<8 THEN LET coll=*0+<
col 1-31): LET 1inl = linl + 1
460 IF 1in1<8 THEN PRINT PAPER 5; INK 0;AT
1 ini,coll 5"4"
500 IF np<1320 THEN GO TO 100
2000 LET t=FN h < x )
2005 IF bt=0 THEN LET bt = t
2010 IF t<bt THEN LET bt = t
2030 PRINT AT 0,0;"Time "Jt;" seconds"
2040 PRINT "Best time: " ibtj" seconds"
2050 PRINT "Maximum speed: "ins;" mph"
2055 FOR x=l TO 1000: NEXT x
2060 PRINT "Press any key to restart"
2070 IF INKEY$="" THEN GO TO 2070
2090 LET gr=gr+.l: IF gr>4.1 THEN LET gr=4.1
1
2095 GO SUB 9000
2096 GO SUB 9310
2100 GO TO 20
3000 PRINT FLASH 15 PAPER 2; INK 6;AT linl.c
olli"/J"5AT 0,3; "Engine blown": GO TO 2055
4000 PAPER 0: INK 5: BORDER 0: CLS
4010 PRINT AT 0,10;“Drag Racer”
4020 PRINT
4030 PRINT "In this drag racing simulation ",
"you must try to cover the ","quarter mile in
the shortest ","possible time. The only cont
rolsyou need are the gears which ","must be c
hanged at the optimum ","moment.": PRINT
4040 PRINT "At the start you are in first
gear and you must watch the rpm counter and d
ecide when to ","change into second. At over
","6000 rpm there is a high ",“probabi1ity o
f the engine “,“b1owing.": PRINT
4050 PRINT "With each succeeding attempt “,"t
he rear end ratio is increased slightly which
makes the game ","progressively more difficu
It.": PRINT
4060 PRINT "Try not to change gear too late o
242 Drag Racer
r too early. The gear keys arel,2,3 and 4.
Good Lack."
4070 PRINT : FOR x = l TO 1000: NEXT x
4080 PRINT "Press any key to start"
4085 IF INKEY*="" THEN GO TO 4085
4090 RETURN
8000 FOR x=0 TO 7
8010 PRINT PAPER 5|AT x,0|"
8020 NEXT x
8030 FOR x=l12 TO 168 STEP 8
8040 PLOT 0, x: DRAW INK 0;255,0
8050 NEXT x
8060 RETURN
9000 DIM g(4)
9005 BORDER 5: PAPER 0: INK 7: CLS
9010 LET g <1)=4
9020 LET g < 2)=2.5
9030 LET g(3)=1.5
9040 LET g < 4)=1
9050 LET t=0: LET np=0: LET ns=np
9070 LET mph=0
9080 LET rpm=0
9090 CIRCLE 152,56,48
9100 CIRCLE 49,56,48
9110 PRINT AT 14,5; "RPM" 5 AT 14 , 17 5 11 MPH " 5 AT 10
,26!"Drag"JAT 19,26!"Racer"
9120 PRINT AT 14,13!"135"iAT 14,23!“45"!AT 9,
19!"0";AT 20,18;"90"
9130 PRINT AT 9,6;"0";AT 14,10! "17"5 AT 14,0!"
52"!AT 20,5!"35"
9140 GO SUB 8000
9145 RETURN
9150 DEF FN a < x ) =>4200# (g < g) /g < 1) )
9160 DEF FN b(x)=ns*gr*g<g)*con/circ
9170 DEF FN c <x) = <ci-H-rpm^) + <c2#rpm / '2) + (c3*rp
9180
9190
9200
9210
9220
9250
DEF FN d (x)=os+(tq/tql)
DEF FN e ( x ) =op + ns* ( 5280/60 "'2)
DEF FN f (x) = (ns*2)/180#PI
DEF FN g<x)=(rpm/19.5)/180*PI
DEF FN h(x)=t +(1320-op)/<np-op)-1
LET con=63360
Drag Racer 243
9260
9270
9280
9290
9300
9310
9320
9330
9340
9350
9999
LET c irc = 4523.893421
LET cl=-l.8953E-9
LET c2=1.02157E-5
LET c3=.015752
LET b t =0: LET gr=3: LET cl=5.176
LET 1in1=0: LET coll=0
RESTORE : FOR x=USR "a" TO USR "a"
READ n: POKE x,n
NEXT x
DATA 0,0,0,0,224,255,227,255
RETURN
7
244
Moonlander
This is an up-market real-time lander program which gives you an
opportunity to grapple with the problems which face a space-lagged
cruiser commander returning home after a long haul. The object of the
exercise is to land your craft on the chillingly small landing-pad at the
bottom of the screen. Precision is the name of the game, because if your
rate of descent is greater than -5 you and your crew are gonners. A word
of warning: if you over-fire your rockets you’ll disappear into hyperspace
until returning back on screen, plummeting to your doom unless you’ve
been doing some nifty blind flying to slow your descent.
10 REM Moon Lander @ Robert Erskine 1983
20 60 SUB 8000
80 GO SUB 9000
90 IF E=0 THEN GO TO 150
100 LET m=ml: LET ml=in-Fl
110 LET H1=H: LET H=(H+V)-.3i
120 LET V=V +<(T/Fl)#(LN (m/ml)))-1.62
130 LET F=F-F1
140 GO TO 175
150 LET ml=m:
160 LET H1=H: LET H=(H+V)-.8i
170 LET V=V-1.62
175 LET coll=col
180 IF col>0 AND RND >.5 THEN LET col=col-l
185 IF col<31 AND RND>.5 THEN LET col=col+l
190 PRINT AT 0,0;"Height ";INT H; u
200 PRINT "Velocity ";INT V!"
210 PRINT "Fuel ";F;"
220 IF INKEY$="o" THEN LET E=0
230 IF INKEY$="i" THEN LET E=1
232 IF INKEY$="z" AND col>0 THEN LET col=co
1-1
234 IF INKEY*="x" AND col<31 THEN LET col=c
ol +1
240 IF H >2000 OR H<1 THEN GO TO 270
250 PRINT ;AT 20-(HI/100) ,col 15“ ”5 INK 5;AT
20-(H/100) ,c o1; "A"
260 IF E=1 THEN PRINT AT 21-(HI/100),co11;"
Moonlander 245
"j INK 2;AT 21-(H/100),col; "B" ;AT 21-(H/100)
,col;" "
270 PRINT INK 7;AT 20,0;"_
_" 5 INK 3; AT 20, 15;
300 IF F=0 OR H<=0 THEN GO TO 2000
310 GO TO 90
2000 IF F=0 THEN PRINT FLASH 1;AT 10,10;"OU
T OF FUEL"
2010 IF H<=0 AND V<-5 THEN PRINT FLASH 1;AT
11,8!"YOU HAVE CRASHED": GO TO 3000
2020 IF H< =0 AND V>-6 THEN PRINT FLASH 1;AT
11,85"YOU HAVE LANDED": PRINT AT 20-<Hl/100)
, Call;" ": PRINT INK 5; AT 20 ,col;"/5" : INK 0
2025 IF H< =0 AND V>-6 AND col=15 THEN PRINT
PAPER 6; FLASH 1;AT 12,5;"IN THE CORRECT PLA
CE"
2026 IF H<=0 AND V>-6 AND col 015 THEN PRINT
PAPER 6; FLASH 1;AT 12,6;"IN THE WRONG PLAC
E"
2030 INK 7: PRINT AT 15,A;"PRESS ANY KEY TO R
ESTART"
2040 IF INKEY*="" THEN GO TO 2040
2050 GO TO 80
3000 PRINT AT 20-(HI/100) ,col 1; " "; INK 5;AT
20,coll; "C"
3010 FOR x = l TO 5
3020 BEEP .03,x-20
3030 NEXT x
3040 GO TO 2030
8000 BORDER 0: PAPER 0: INK 6: CLS : PRINT AT
2,4;"MOON LANDER"
8020 PRINT
8030 PRINT "This is a real-time moon lander g
ame in which you must land the lunar module o
n the small purp1e1 anding pad. You must land
in ", "the correct place at a rate o-f ", "desc
ent not -faster than -5. ”
8040 PRINT
8050 PRINT "Use the -folowing command keys:"
8060 PRINT
8070 PRINT "z = move le-ft": PRINT
8080 PRINT "x = move right": PRINT
8090 PRINT "i = motor on": PRINT
8100 PRINT "o = motor o-f-f": PRINT
246
Moonlander
8110 PRINT "Press any key to start"
8120 IF INKEY*="" THEN GO TO 8120
8130 RETURN
9000 LET H=2000
9010 LET V=-20
9020 LET m=1378: LET ml=m
9030 LET T=4800
9040 LET FI=2
9050 LET F=373
9060 LET E=1
9080 LET co1=15
9090 LET y=8
9200 PAPER 0: BORDER 0: CLS
9210 FOR x=l TO 30
9220 PLOT INK 7;INT (RND*255),INT <RND*165)+
10
9230 NEXT x
9290 RESTORE : FOR x=USR "a" TO USR "c"+7
9300 READ n: POKE x,n
9310 NEXT x
9320 DATA 60,126,219,255,255,126,189,129,24,6
0,60,60,24,24,0,0,0,0,0,0,24,60,126,255
9330 PRINT INK 3;AT 20,15;"_"
9340 RETURN
247
Anagrammatic
This is a simple anagram jumbler. There are few things more infuriating
than staring blankly at crossword clues, unable to de-jumble the letters.
This little program will hopefully get the old brain ticking again with
some fresh ideas on how to unscramble the problem.
10 REM **ANAGRAMATIC#* A SIMPLE
ANAGRAM SOLVER by H.NYWALW
20 POKE 23658,255: REM -forces caps shift
30 BORDER 5: PAPER 5: INK 0: CLS
40 PRINT TAB 10; BRIGHT 1; INVERSE 15 11 ANAGR
AMATIC“
50 PRINT : PRINT " IF YOU ARE A CROSSWORD A
DDICT, THEN YOU WILL KNOW THE PROBLEMS"
60 PRINT “OF TRYING TO REARRANGE LETTERS.”
70 PRINT : PRINT “ FOLLOW THE INSTRUCTIONS
AND THEN SIT BACK AND WATCH THE "
75 PRINT "SCREEN AS EVERY POSSIBLE "
80 PRINT "COMBINATION RUNS UP BEFORE YOUR V
ERY EYES.THE AIM IS NOT TO LOOKAT EVERY WORD
GROUP,BUT SIMPLY “
85 PRINT “TO GLANCE AT THE SCREEN OCCASIO-N
ALLY AND YOU MAY WELL GET SOME"
90 PRINT "INSPIRATION."
95 PRINT : PRINT “ALTERNATIVELY,PUT IN A PR
INTER SUBROUTINE FOR HARD COPY."
100 PRINT "PRESS ANY KEY TO START."
104 IF INKEY$= “ " THEN GO TO 104
110 BORDER 4: PAPER 4: INK 0: CLS
120 PRINT TAB 4i" ANAGRAMATIC
130 PRINT ’’"TYPE "5 INVERSE 1 I “ONLY"J INVER
SE 05" THOSE LETTERS WHICH","ARE TO BE REARRA
NGED.DO NOT","INPUT ANY LETTERS WHOSE POSITIO
NIS KNOWN."
140 INPUT A*: IF A*="" THEN GO TO 140
150 PRINT
160 LET L=LEN A*
170 PRINT "ARE ANY LETTERS/SPACES KNOWN?","P
RESS Y(YES) OR N(NO)"
175 LET ZS=INKEY*: IF Z*=" "
THEN GO TO 175
248 Anagrammatic
180 IF Z*="N“ THEN GO TO 2*40
181 IF Z%< > " Y" THEN GO TO 175
190 PRINT “TYPE IN THE KNOWN ORDER AS PER E
XAMPLE.“: PRINT "E.G. ’-D-F- -EE’"
200 INPUT K$: LET W=L
210 LET T=0: FOR J=1 TO LEN K*: IF K$(J)="-“
THEN LET T=T+1
220 NEXT J: IF T< >L THEN GO SUB 1000: GO TO
200
230 GO TO 270
240 LET K*=““: FOR J=1 TO L: LET K*=K$+"-":
NEXT J
250 INPUT "NUMBER OF LETTERS TO BEGIN",W
260 IF W<1 OR W>L OR WOINT W THEN GO SUB 1
000: GO TO 250
270 DIM B$(L): DIM C*(L): DIM Q(L)
280 PRINT --"
290 GO SUB 500
300 FOR J=W TO L
305 PRINT AT 21,0i" n : POKE 23692,-1
310 LET K=1
320 LET Q(K)=1
330 IF B3s<Q<K) )=■=" " THEN GO TO 440
340 LET C*<K)=B$(Q(K)): LET B*(Q(K))»“"
350 LET K=K+1
360 IF K<=J THEN GO TO 320
370 LET A“1
380 FOR S-l TO LEN K*
390 IF K*<S)=“-" THEN PRINT C$<A)i: LET A=A
+ 1 : GO TO 410
400 PRINT K$(S)i
410 NEXT S: PRINT
420 LET K=J
430 LET B*(Q(K))=A*(Q<K))
440 LET Q(K)“Q < K)+1
450 IF Q <K)< =L THEN GO TO 330
460 LET K=K-1
470 IF K>=*1 THEN GO TO 430
480 NEXT J
490 PRINT : PRINT "THAT’S ALL THE POSSIBLE A
NAGRAMSWRITTEN. TYPE RUN FOR ANOTHER GO.*': STO
P
500 FOR N=1 TO L
Anagrammatic 249
510 LET B*<N)=A$<N): NEXT N: RETURN
1000 PRINT BRIGHT 1; FLASH 1}"E R R 0 R!
LEASE REDO.RETURN
9999 PAUSE 0: BORDER 0: PAPER 0: INK 6: CLS
250
Stellar Run
On a routine run into hyperspace, you suddenly come upon a new
universe. Instantly your cruiser is confronted with a series of mazes,
obstacles and tunnels as you struggle to chart new horizons. As an
experienced commander, you are well aware that any contact with the
numerous meteors, rock walls or barriers will lead to your instant
destruction. You will need to think fast and use your missiles to blast a
hole through obstacles. So stand by, finger on the keyboard.. . Good
luck!
1 REM STELLAR RUN ORIGINAL
VERSION @ H WALWYN SPECTRUM VERSION <2 D
PARKER
2 RANDOMIZE : CLS : PRINT AT 10,10i FLASH
l;-STELLAR RUN": GO SUB 8000: BORDER black:
GO SUB 7000: GO TO 6000
100 REM SCREENS FOR UDG
110 LET l=CODE SCREENS <y+l,x): IF i THEN R
ETURN
120 POKE 23606,PEEK 23675: POKE 23607,PEEK 2
3676-1
130 LET i=CODE SCREENS (y+l,x)+112
140 POKE 23606,0: POKE 23607,60
150 RETURN
1000 REM MAIN LOOP
1010 POKE 23692,255
1020 LET e=e+ee*RND: GO TO 1000+d#100
1100 REM D=1
1110 LET dS = aS < TO SIN <e)*11 + 13)+CHRS 20 + CHR
S 0 + bS( TO 20)+aS: IF e>15 THEN BEEP .i,e/3:
LET d=2
1120 GO TO 2000
1200 REM D=2
1210 LET dS=aS( TO SIN (e)*11+13)+CHRS 20+CHR
S 0 + bS< TO 16)+ as: IF e >30 THEN BEEP .l,e/3:
LET d=3
1220 GO TO 2000
1300 REM D=3
1310 LET dS=aS( TO SIN <e)+COS <e*.9>*4.5+12)
Stellar Run 251
+ CHR$ 20+CHR$ 0 + b$( TO 16>+a$: IF RNDC.03 THE
N LET d$=a$
1320 IF e>45 THEN BEEP .l,e/3: LET d=4
1330 GO TO 2000
1400 REM D=4
1410 LET n$=CHR$ 20+CHRS 0+b$: IF RND<.08 THE
N LET n$=CHR$ 20+CHRS 0+1$
1420 LET d$=a$( TO (SIN <e)+COS (e*i.1))*4.5+
12)+n$( TO 16)+a$
1430 IF e >60 THEN BEEP .l,e/3: LET d=5
1440 GO TO 2000
1500 REM D=5
1510 IF RND >.6 THEN LET d$=CHR$ 20+CHRS 0 + b$
: GO TO 1530
1520 LET d$=CHR$ 20+CHR$ 0+c$(INT <RND*40+1)
TO 40)
1530 IF e >75 THEN BEEP . i,e/3: LET d = 6
1540 GO TO 2000
1600 REM D=6
1610 LET d$=a$( TO SIN (e)*12+14)+CHR$ 20+CHR
$ 0+b$( TO 14)+a$: IF e>90 THEN BEEP .l,e/3:
LET d=7
1620 GO TO 2000
1700 REM D=7
1710 LET d$=a$( TO (SIN (e)+COS <e#5.1))*4.5+
12)+ CHR$ 20+CHR$ 0+b$( TO 16)+a$: IF e>105 TH
EN BEEP .1,e/3: LET d=8
1720 GO TO 2000
1800 REM D=S
1810 IF RND >.25 THEN LET d$=CHR$ 20+CHR5 0 + b
$: GO TO 1830
1820 LET d$=i$(INT (RND*2+1) TO 30)
1830 IF e >120 THEN BEEP .l,e/3: LET d=9
1840 GO TO 2000
1900 REM D=9
1910 IF RND >.5 THEN LET d$=CHR$ 20+CHR$ l+b$
: GO TO 1930
1920 LET d$=a$
1930 IF e > = 135 THEN GO TO 3000
2000 REM PRINT
2010 IF LEN d$< 32 THEN LET d$=d$ + a$
2030 PRINT AT 21,31) INK d) PAPER 9i"BB" id$(
TO 32 ) ) AT 0,0) INK 9 ) " MISSILES= " )-f g) AT 0,13)"
252 Stellar Run
LEVEL=“id;AT 0,22i"LYEARS=";INT e
2100 REM CHECK IF KEY PRESSED
2110 LET k=CODE INKEYS: IF m<0 THEN LET m=0
2120 BEEP . 02, m*10: LET -fg = -fg+l
2130 IF NOT k THEN LET m=m-2: GO TO 2300
2140 IF k< >48 THEN GO TO 2200
2150 IF -f g< 2 THEN GO TO 2300
2160 LET f = 1 : LET Tg=-fg-2
2170 IF fg<0 THEN LET -fg=0
2180 GO TO 2300
2200 REM KEY PRESSED
2210 LET m=m+1: IF m>3 THEN LET m=3
2220 IF k=53 THEN LET x=x-m: IF x<l THEN LE
T x = l
2230 IF k=56 THEN LET x=x+m: IF x>30 THEN L
ET x=30
2240 IF k=54 THEN LET y=y+m: IF y>14 THEN L
ET y=14
2250 IF k=55 THEN LET y=y-m: IF y<1 THEN LE
T y = 1
2300 REM DISPLAY AND CHECK HIT
2310 IF -f g >9 THEN LET -fg=9
2315 GO SUB 100: IF i>144 THEN GO TO 4000
2320 PRINT AT -fy-l,-fx; PAPER 8; INK 9;" ” ; AT
■f y - 2 , -f x ; PAPER 8} INK 9; “ “ ; AT y,x! PAPER 8;
INK 9is$: LET -f x = x : LET -fy=y
2330 IF -f<l THEN GO TO 1000
2340 IF -f =2 THEN GO TO 2355
2350 LET -f =2
2355 BEEP .01,d
2360 LET r=x*8+3: LET s=(21-y)*8: PLOT BRIGH
T li INK red;r,s: DRAW BRIGHT li INK red; O V
ER 1;0,-50: PAUSE 5: PLOT BRIGHT 0; INK red;
r,s: DRAW BRIGHT 0; INK red; OVER l;0,-50
2370 LET t=(r-4)/S: FOR v=y+l TO y+7: IF SCRE
EN* (v, t) < > 11 M THEN PRINT AT v,t; PAPER 8;"
": BEEP .25,-10
2380 NEXT v: LET f=0: GO TO 1000
3000 REM YOU’VE MADE IT
3010 INK red: PAPER yellow: BORDER blue: CLS
3020 FOR k=0 TO 48: BEEP .01,k: BEEP .01,48-k
: NEXT k
3030 FOR k=0 TO 7: BEEP .01,k: PRINT AT k+5,3
5 INK 3-ki PAPER k+l;"WELL DONE! YOU’VE MADE
Stellar Run 253
IT!": BEEP .01,20-k: NEXT k
3040 GO TO 4070
4000 REM SHIP HIT
4005 PRINT AT -f y- 1 , -f x ; " "
4010 FOR k=0 TO 7: BEEP .02,-1: PRINT AT y,x|
X*(k+1): BEEP .02,1: NEXT k
4020 INK black: PAPER yellow: CLS : BORDER bl
4030 PRINT AT 6,11; FLASH 1DESTROYED!"
4040 PRINT AT 8,7;” You got as -far as"
4050 PRINT AT 10,14;INT (e*10)/10
4060 PRINT AT 12,10;"light years"
4070 PRINT AT 14,6;“ANOTHER GAME? <y/n)"
4080 LET k$=INKEY*: IF k*="y" THEN GO TO 600
0
4090 IF k$< >"n" THEN GO TO 4030
4100 GO TO 9999
6000 REM INITIALISE
6010 PAPER 7: CLS : FOR a=0 TO 21: PRINT : NE
XT a
6020 REM X AND Y POSITION OF SHIP
6025 LET x = 16: LET -fx = x: LET y=10: LET fy=y
6030 REM MISSILE BANK
6040 LET i g=9
6050 REM DISPLAY SHIP
6054 FOR k=0 TO 48: BEEP .01,k: BEEP .01,48-k
: NEXT k
6055 LET 5$=CHR$ 144
6060 PRINT AT y,x;s$
6070 REM VARIABLES
6080 LET -f=0: LET m=0: LET d = l: LET e=0: LET
a=0: LET b=0: LET c=0: LET ee=.2
6090 LET x$=CHR$ 148+CHR$ 32+CHR* 149+CHR* 32
+ CHRS 150+CHR* 151+CHR$ 152+CHR* 32
6100 LET o$=CHR3s 145: LET p$=CHR$ 146: LET q*
=CHR* 147
6110 LET a*=“": FOR k=l TO 45: LET a$=a$+CHR*
145: NEXT k
6120 LET 1$="": FOR k = l TO 45: LET i*=iS>+CHR*
147+CHR* 32: NEXT k
6130 LET b$="
6140 LET c$=" "+p$+" "+p$+"
"+p$+" "+p$+"
254 Stellar Run
" +P *+"
6999 GO TO 1000
7000 REM INSTRUCTIONS
7010 PAPER yellow: CLS : PRINT AT 0,10; INK r
ed; INVERSE 1;"STELLAR RUN"
7020 INK black: PRINT AT l,0;"You are in
control o-f theSTELLAR TRIPPER and
havediscovered a new galaxy."
7030 PRINT ’"The galaxy is 135 light years
wide and you will have tonavigate your
way through theWARP MAZE."
7040 PRINT ’"Each time you play you will be
given a slightly different maze....so watch
out! ! ! “
7050 PRINT ’"See how -far you can get!"
7060 PRINT ’"No-one has reached the other
side! 11
7070 PRINT ’"The -further you go, the harder
it is!"
7080 PAUSE 1000: CLS
7090 PRINT AT 3,2i “Press 5 to move le-ft";TAB
8; "8 to move right";TAB 8 5 " 6 to move -forward"
; TAB 8! "7 to move back";TAB 4;"SPACE to -fire
7100 PRINT AT 21,5;"Press any key to start"
7110 IF INKEY$="" THEN GO TO 7110
7999 RETURN
8000 REM GRAPHICS
8010 DATA "a”,66,102,126,126,60,60,24,24
8020 DATA "b",255,170,251,170,255,170,255,170
8030 DATA "c",24,36,102,153,153,102,36,24
8040 DATA "d", 129,66,36,24,24,36,66,129
8050 DATA "e",66,102,126,126,60,60,90,0
8060 DATA "-f" ,66, 102, 126, 126,60, 188,0,73
8070 DATA "g",66,102,126,126,60,0,0,129
8080 DATA “h",66,102,126,0,161,0,8,0
3090 DATA "i",128,16,0,4,64,0,4,0
8100 FOR a=1 TO 9: READ a$: FOR b=0 TO 7: REA
D c: POKE USR a*+b,c: NEXT b: NEXT a
8200 LET blue=l: LET red=2: LET magenta=3: LE
T green=4: LET cyan=5: LET yellow=6: LET whit
e=7: LET b1ack=0
8999 RETURN
9999 BORDER 7: INK 0: PAPER 7: CLS
255
Russian Roulette
The six-shooter points straight at you. There is only one bullet some¬
where in the cylinder. Spin the cylinder as much as you wish and then
press the trigger—if you dare!
10 REM *RUSSIAN ROULETTE @19
S3 MICHAEL BEWS
20 BORDER 0: INK 7: PAPER 0
30 LET F=1: LET SC=0: LET HS=0
100 CLS : PRINT INK 7; PAPER 2;"RUSSIAN ROU
LETTE"!TAB 0;
110 CIRCLE 126,119,32
120 CIRCLE 146,131,6
130 CIRCLE 146,107,6
140 CIRCLE 126,95,6
150 CIRCLE 106,107,6
160 CIRCLE 106,131,6
170 CIRCLE 126,143,6
180 CIRCLE 126,119,14
185 CIRCLE 126,119,13
187 CIRCLE 126,119,12
200 PRINT AT 11,15; "IB"; AT 12,15AT 13,
15; "BS”> AT 14, 15; "Mr ; AT 15, 15; "Bl"
210 PRINT AT 2, 15; 11 "
220 PRINT PAPER is INK 7 j AT 16,0; "THIS IS A
REVOLVER, POINTING AT YOU. IT HAS ONE BULLET
. PRESS ’A’ TO SPIN THE CYLINDER FOR AS LON
G AS YOU WISH AND FIRE WITH ’B’. SCORE 100 E
ACH TIME THE GUNFAILS TO KILL YOU,THEN TRY AG
AIN"
230 PRINT AT 0,18; INVERSE 15“THIS SCORE:
“SAT 1,15;"HIGHEST SCORE:
250 LET A=PEEK 23556: IF A=255 THEN GO TO 2
50
252 BEEP .002,30
255 PRINT AT 6,15;" ";AT 7,15;" “;AT 12,20
>“ "!AT 14,20;”
260 IF A< >65 THEN GO TO 400
300 PLOT OVER l;146,131: LET F=l: PLOT OVE
R l;146,131
256 Russian Roulette
305 LET A=PEEK 23556: IF A065 THEN GD TO 2
50
310 PLOT OVER 15146,107: LET F=2: PLOT OVE
R 15146,107
315 LET A=PEEK 23556: IF A<>65 THEN GO TO 2
320 PLOT OVER
15126,95
325 LET A=PEEK
50
330 PLOT OVER
R 15106,107
335 LET A=PEEK
50
340 PLOT OVER
R 15106,131
345 LET A=PEEK
50
15126,95: LET F=3: PLOT OVER
23556: IF A< >65 THEN GO TO 2
15106,107: LET F=4: PLOT OVE
23556: IF A< >65 THEN GO TO 2
15106,131: LET F=5: PLOT OVE
23556: IF A< >65 THEN GO TO 2
350 PLOT OVER 15126,143: LET F=6: PLOT OVE
R 15126,143
360 GO TO 250
400 IF A< >66 THEN GO TO 250
410 IF F=1 THEN PRINT INK 2; PAPER 75 FLAS
H 15 AT 6, 155 5 AT 7,155"HU";: PRINT AT 12,2
05"YOU’RE DEAD!";AT 14,205“BULLET IN ";F: GO
TO 500
420 PRINT AT 12,20; "YOU SURVIVED"5 AT 14,205"
BULLET IN ";F
430 LET SC = SC + 100: PRINT INVERSE 15 AT 0,29;
" "5 AT 0,29;SC
440 IF PEEK 235560255 THEN GO TO 440
445 BEEP .1,3: BEEP'.1,5: BEEP .1,1
450 GO TO 250
500 IF HS< SC THEN LET HS=SC
505 LET SC=0
510 PRINT INVERSE 15 AT 1,29;" "5 AT 1,29;H
515 PRINT I INVERSE 1 5 AT 0,295“ " i AT 0,29jS
C
520 IF PEEK 235560255 THEN GO TO 520
522 BEEP .1,1: BEEP .1,1: BEEP .1,0: BEEP .1
1
530 LET F=1: GO TO 250
257
Swordsman
Choose your moment, then swiftly thrust your sturdy blade into the
gaping jaws of some hideous monster. Beastmaster you’ll never be, these
nasties are definitively untameable, but swordsman you might just about
manage. It’s all quite simple. You just have to survive and get as many
points as possible before some hideous creature does for you. Maybe the
Vampire Cat will get to chew on your jugular. Who can tell? Quick.
Lunge and thrust, missed... back to the left quickly... missed again..
Aaargh...!
1 BORDER 4: INK 1: PAPER 4
2 POKE 23685,255
10 REM SWORDSMAN B
Y H. WALWYN FOR THE CBM 64
C
ONVERTED FOR THE 16/48K SPECTRU
M BY ANDY GREEN
25 LET MZ=0
30 DIM E$(4,64): LET E$(l)="YOU ARE UNHARME
D AND RARING TO GO
31 LET E$( 2 ) = "YOU ARE SLIGHTLY WOUNDED NOW.
BE BRAVE
32 LET E$(3)="YOU HAVE RECEIVED MULTIPLE
LACERATIONS.
33 LET E*(4)="IT’S YOUR LAST CHANCE NOW. GO
OD LUCK...
100 DIM V(9)
110 FOR J=1 TO 9: READ V(J): NEXT J
120 DATA 3,4,3,4,2,5,2,2,4
150 REM ** VK=NUMBER OF DEAD MONSTERS
160 REM ** WK=WOUNDED LEVEL
170 REM ** PK=POINTS SCORED
180 LET VK=0: LET PK=1: LET WK=1
200 DIM V*<9,17)
210 FOR K=1 TO 9: READ V$<K): NEXT K
220 DATA "GANGRENE GOATNORTH-SEA BOIL","V
AMPIRE CAT”
230 DATA "POLITICAL WORM","MAD METER-MAID","
258 Swordsman
SCHOOL SPINACH"
240 DATA “DANDRUFFFED BEARRAMPANT BANKER"
,"PICKLED ALBATROSS"
500 DIM D$<4,3,4>: DIM M$<9,4,3,5)
510 FOR 1=1 TO 4: FOR J=1 TO 3: READ D$(I,J)
530 NEXT J: NEXT I
550 REM ** THESE DATA LINES (600-620) CON
TAIN THE VARIOUS STANCES OF THE SWORDSMAN
600 DATA " 01"," O ",” ))"
602 DATA " 0 I “, " O ", ” ( ("
604 DATA " 0 0-", H X"
606 DATA " 0",” 0--","/ ) "
650 FOR K=1 TO 9: FOR J=1 TO 4: FOR 1=1 TO 3
660 READ M$(K, J, I)
680 NEXT I: NEXT J: NEXT K
699 REM ** THESE DATA LINES (700-876) CON
TAIN THE VARIOUS STANCES OF THE MONSTERS WH
0 OPPPOSE THE SWORDSMAN
700 DATA " 0 ","*«-",")>"
702 DATA " 0 ", ” ■ , " ’ \\"
704 DATA " 0 " , "IBB- ", " ’ \ "
706 DATA "O /", " \“ , " ("
720 DATA "***","*0:0*","* ■ *"
722 DATA "***","*0:0*","* B *"
724 DATA "***”,"*0:O*"
726 DATA "***","*0:O*","* ■ *“
740 DATA "", "0- " , " X"
742 DATA "","0- ”,” I"
744 DATA " ", "0- " , " \ \ “
746 DATA "","0-
760 DATA "00 O" , " 00 O"
762 DATA 00"," 00 O"
764 DATA "",“00 0","100 0"
766 DATA "","0 0 ","100 00"
730 DATA "$$$$$", "<$0.0*" , "<< > > "
782 DATA "$$$$$","$0.OS"," X X"
784 DATA "$$$$$","$0.0$","<< >>"
786 DATA "$$$$$","$0.04;"," X X"
300 DATA "MB
802 DATA "■■■" , "BBBB" , "<711"
804 DATA " ■■","BBB","■ M"
806 DATA "■ ■"
320 DATA "*00*."," "," B "
Swordsman 259
322
824
826
840
842
344
862
364
866
999
1000
1 100
1900
2750
2760
CUT
2765
2799
2800
DATA "*00*",” . " , " E -
DATA "*00*"" A
DATA "*00*"," "," R "
DATA " O""X”
DATA “ 0", " : " , " ( ) "
DATA " 0",“I:I“,“< >“
DATA “ 0","/ \“
DATA " M ","0
DATA " O-, “ "
DATA "0\\<", " ■ " , ” "
DATA "“0--< ” , ! "
REM ** START OF GAME
CLS
GO SUB 4000
GO TO 1000
FOR L=1 TO 100: NEXT L: RETURN
PRINT AT 10,0! INVERSE 1;“THE "
YOU UP"
FOR 1=1 TO 100: NEXT I: RETURN
REM ** CLEAR TOP OF SCREEN
FOR X=0 TO 10: PRINT AT X } 0;"
V$(MZ)!“
2815 NEXT X
2817 PRINT AT 0,0;
2320 RETURN
2950 LET MR=MZ
2960 LET MZ=INT (RND*9)+1: IF MZ=MR THEN GO
TO 2960
2970 RETURN
4000 GO SUB 2950: REM ** MONSTER BATLE
4002 INVERSE 1: PRINT AT 9,0;"
4003 PRINT "
4004 PRINT "
4005 PRINT " IT’S THE ";V$(MZ);" !
4006 PRINT * (DEGREE OF DIFFICULTY TO KILL
"; AT 14,0; ■■= "
;V < MZ); “) "
4007 PRINT ;E$(WK)
4008 INVERSE 0
4010 LET M7=4: LET D7=2: LET M8=INT (RND*6+20
): LET D8=15: LET M6=4: LET D6=2: LET M9=M3:
LET D9=D8
260 Swordsman
4015 PRINT AT 0,0;"TOTAL POINTS=";PK
4020 LET A*=INKEY*
4025 IF A*="5" THEN LET DS=D8-1: LET D7=l: I
F DS< 4 THEN LET D8=4
4030 IF AS="8" THEN LET D8=D3+1: LET D7=2: I
F D3 >27 THEN LET D8 = 27
4035 IF A$="6“ THEN LET D7=D7+1: IF D7>3 THE
N LET D7=4: LET D3=D3+1: IF D3>27 THEN LET
D8 = 27
4036 IF A* = 11 6“ AND D7=2 THEN LET D7 = 3
4037 PRINT AT 6,D9-i';" " ; AT 7,D9-1;"
“;AT 8,D9-l;*
4038 FOR X=0 TO 2: PRINT AT 6 + X,D9j D*(D7,X + 1)
: NEXT X
4039 LET D9=D3: LET D6=D7
4040 IF D7=4 THEN GO TO 4060
4050 GO TO 4085
4060 FOR X=0 TO 2: PRINT AT 6+X,M9iMS(MZ,M6,X
+1): NEXT X
4065 FOR Z=0 TO 1
4068 LET Z1=CODE (SCREEN* (7,1+D3+Z)): IF Zl<
>32 AND Zl<>43 AND Zl<>45 THEN GO TO 4090
4070 PRINT AT 7,2+08;"+"
4072 NEXT Z
4082 LET D7=2
4085 LET M7=M7+1: IF M7=5 THEN LET M7=l
4036 IF RND >.35 THEN LET M8=M3-1
4087 PRINT AT 6,M9-1;“ ”;AT 7,M9-l;"
";AT 8,M9-1;"
4083 FOR X=0 TO 2: PRINT AT 6+X,M8;M*<MZ,M6,X
+ 1): NEXT X: IF M3< D8 + 2 THEN GO TO 4100
4089 LET M9=M8: LET M6=M7: GO TO 4020
4090 PRINT INVERSE 1;AT 10,0;"WELL DONE) YOU
GOT THE “;V*(MZ);"
4091 LET P5=INT <V(MZ)*D8): LET VK=VK+l: LET
WK=WK-l: IF WK<1 THEN LET WK=1
4092 PRINT AT 0,0;"POINTS FOR KILL = ";P5: LE
T PK=PK+P5: GO SUB 2750
4093 GO SUB 2800
4095 RETURN
4100 LET WK=WK+1
4102 IF WK< 5 THEN PRINT AT 0,0; "TRY AGAIN...
Swordsman 261
": GO SUB 2 760: GO SUB 2300: GO TO 4001
4103 CLS
4105 PRINT ’’’’: FOR 1=1 TO 3: PRINT "OH DEAR
4106 POKE 23692,255
4107 BORDER I: FOR J=1 TO 50: NEXT J: NEXT I
4110 PRINT ’"AAAAAAAARGH!! M “
4120 PRINT ’"ANOTHER HERO BITES THE DUST."
4125 PRINT ’"YOU KILLED ";VK;“ MONSTERSSCO
RING " ;PK,’" POINTS."
4130 PRINT ’"PRESS ’Y’ TO PLAY AGAIN, ’N’
TO FINISH."
4132 IF INKEY$< >”" THEN GO TO 4132
4133 IF INKEY$< > " Y" AND INKEY*<>"N" THEN GO
TO 4133
4134 IF INKEY$="Y" THEN RUN
4135 STOP
262
Hangman
In this rather sophisticated game of Hangman the computer invites you
to guess words from a range of topics, including animals, countries of the
world, composers and artists, chemical elements, Christian names and
general verbs.
The strings from which the words are chosen by the computer are stored
in A$ and you may wish to modify the program to include your own
words and topics or to combine all the existing topics so that the selected
word can be taken randomly from any one of them. Note that some of the
topics are divided up into two distinct groups of words of different
lengths and random number routines are used in the program to
determine which group the word is to be chosen from.
1 RANDOMIZE : BORDER 7: PAPER 7\ INK 0: CL
S
2 REM @ PAUL STANLEY
A GO SUB 7000
5 POKE 23658,10
10 GO TO 1000
100 IF RND>.5 THEN GO TO 125
110 LET A*="PIGEONDONKEYBUDGIEMAGGOTJAGUARSP
IDERBEETLEWEEVILEARWIGSHRIMPSALMONPLAICEMINNO
WBADGERCATTLEKITTENLOCUSTMAGPIERABBITTURKEYTU
RTLECANARYGERBILMONKEYCURLEW"
120 LET 1=(INT <RND*25>+1)*6-5: LET B*=A*(I
TO 1+5): RETURN
125 LET A$= 11 SNAILROACHHIPPOLLAMACHIMPCAMELHO
RSETIGERHOUNDSNAKEROBINHERONRAVENSTORKTROUTWH
ALEHYENAPANDASKUNKTAPIRZEBRAMOUSESHREWEAGLESW
IFTPERCHPRAWNOTTERGOOSEKOALASHEEP"
130 LET 1=(INT <RND*31)+1>*5-4: LET B*=A$(I
TO 1+4): RETURN
150 IF RND>.5 THEN GO TO 175
160 LET A$="ALBANIAAUSTRIABELGIUMDENMARKFINL
ANDGERMANYHUNGARYICELANDIRELANDRUMANIABAHRAIN
LEBANONALGERIALIBERIANIGERIASENEGALTUNISIABER
MUDAJAMAICABOLIVIAURUGUAY"
170 LET 1=(INT <RND*21)+1 )# 7 - 6 : LET B$=A$ <I
TO 1+6): RETURN
Hangman 263
175 LET A$="TURKEYUGANDASWEDENPOLANDNORWAYME
XICOKUWAITISRAELGREECEZAMBIAFRANCECYPRUSCANAD
ABRAZILT AIWANPANAMAMALAWIJORDANAZORESANGOLA"
135 LET 1=(INT (RND*20)+1)*6-5: LET B$=A*(I
TO 1+5): RETURN
200 LET A$="PURCELLROSSINIBELLINIBERLIOZBORO
DINPUCCINIDEBUSSYSTRAU3SBRITTENH0LBEINMILLAIS
DAUMIERCEZANNEGAUGUINMATISSEPICASSO"
210 LET I“(INT (RND*16)+1)*7-6: LET B$=A$(I
TO 1+6): RETURN
250 IF RND >.5 THEN GO TO 275
260 LET A$="BARIUMCARBONCERIUMCOBALTCOPPERCU
RIUMERBIUMHELIUMINDIUMIODINENICKELOSMIUMOXYGE
NRADIUMSILVERSODIUM"
265 LET 1= <INT (RND*16)+1)*6-5: LET B«=A$<I
TO 1+5): RETURN
275 LET A$=“ARSENICBISMUTHBROMINECADMIUMCAES
IUMCALCIUMFERMIUMGALLIUMHAFNIUMHOLMIUMIRIDIUM
KRYPTONLITHIUMMERCURYRHENIUMRHODIUMSILICONSUL
PHURTERBIUMTHORIUMTHULIUMYTTRIUM"
280 LET I = ( INT < RND*22 ) + 1) *7-6 : LET B3>=A$ ( I
TO 1+6): RETURN
300 LET A$="JAMESDA0IDEDGARHENRYCAROLHELENBR
IANSALLYSARAHSUSANPETERSIMONMANDYKEVINSCOTTNI
GELMILESROBINVENUSROMEOCECILDYLANPERCYLEIGHEM
ILYPABLOFRANKCLIVEDIANANICKYTRACYBARRYGEOFFTE
RRY “
320 LET 1=(INT (RND*34)+1)*5-4: LET B*=A$<I
TO 1+4): RETURN
350 IF RND >.5 THEN GO TO 375
360 LET A$=“CARRYCATCHMARRYLAUGHTWISTBRINGFE
TCHWRITECLIMBWORRYGLIDEAWASHSHOOTDODGEPUNCHSM
ACKSCALETHROWLOATHDRI0EPRESSTASTESPEAKHURRYSC
ORETRAILFORCEPROVETRACEPAINT"
370 LET I=(INT (RND*30)+1)*5-4: LET B*=A*<I
TO 1+4): RETURN
375 LET AS="COLOURTHRILLUNLOCKAFFECTABDUCTFO
LLOWATTACKDEFENDDIFFERSELECTOUTPUTDEFINECHANC
EMODIFYREMAINACCEPTSPRINGASSUREVANISHFINISHTR
AVEL"
390 LET 1=(INT <RND*21)+1)*6-5: LET B$=A$(I
TO 1+5): RETURN
1000 PRINT AT 0,9; PAPER 3; INK 7; " H A N G M
A N"
264 Hangman
1005 PRINT INK 1’’"Which subject do you want
1010 PRINT INK 4’’"1.ANIMALS"’ INK 3’ "2.
....COUNTRIES OF THE WORLD"’ INK 4' "3.COM
POSERS & ARTISTS"
1020 PRINT INK 3’”4.CHEMICAL ELEMENTS"’
INK 4’ "5.CHRISTIAN NAMES"’ INK 3’ "6.G
ENERAL VERBS"
1050 PRINT ’ INK 2’"Press the appropriate key
1060 LET i*=INKEY$: IF CODE I$<49 OR CODE I$>
54 THEN GO TO 1060
1070 GO SUB 50+50*VAL i$
1080 LET C*=B$: CLS
1090 PRINT PAPER 35 INK 7;AT 0,15;“H A N G M
A N"
1100 LET S=0: LET C=0: LET 1=LEN b$: LET Y=13
: LET X= 15
1105 PRINT AT 11,155 INK 2i“Your guesses:"
1110 FOR -f = i TO l: PRINT AT 3,13 + -f*2; INK 4j"
NEXT -f
1120 PRINT AT 7,15 5 “Guess a letter"
1130 LET IS=INKEYS: IF 1$="" THEN GO TO 1130
1140 IF CODE I3K65 OR CODE I*>90 THEN GO TO
1130
2000 LET S1=S: FOR F=1 TO L
2010 IF I$=B$<F) THEN LET B$(F)="*": GO TO 2
100
2020 NEXT F: IF S=S1 THEN BEEP .4,-15: BEEP
.4,-25: GO SUB 5000+10*C: LET C=C+1
2030 IF S=Si THEN PRINT INK 4;AT Y,X;I$: LE
T X=X + 2: IF X=>33 THEN LET X=15: LET Y=Y + 2
2040 GO TO 1120
2100 PRINT INK 25 AT 3,13+F*2iI$
2110 BEEP .3,30: LET S=S+1: IF S=L THEN GO T
0 3000
2115 NEXT F
2130 GO TO 1120
3000 PRINT AT 20,0i"WELL DONE! YOU CORRECTLY
GOT "iC$i" IN "iC+S;" GUESSES"
3010 FOR F=1 TO 400: NEXT F: CLS : GO TO 1000
ETURN
Hangman 265
5010 FOR F=5 TO 16: PRINT INK 3;AT F,2;"B":
NEXT F: RETURN
5020 PRINT AT 4,2; INK 4;" ": RETURN
5030 FOR F=0 TO 5: INK 2: PLOT 24,112+F: DRAW
23-F,23-F: NEXT F: INK 0: RETURN
5040 PRINT INK 1iAT .. RETURN
5050 INK 2: CIRCLE 73,118,9: PLOT 70,120: DRA
W 1,0: DRAW 0,1: DRAW -1,0: PLOT 76,120: DRAW
1,0: DRAW 0,1: DRAW -1,0
5052 PLOT 73,118: DRAW 3,-3: DRAW -2,0: DRAW
-1 , 1
5056 PLOT 69,115: DRAW 10,0,2: INK 0: RETURN
5060 FOR F=72 TO 75: PLOT F,104: DRAW 0,4: NE
XT F
5062 PRINT INK 3;AT 9,3;"il "; INK 5;AT 10,7
i“ ■■■“; INK 3 i AT 11,3; " ; INK 5;AT 12,3;"
": RETURN
5070 PLOT 83,104: DRAW 10,10: DRAW 1,0: DRAW
-10,-10: FOR F=1 TO 3: CIRCLE 97,116,F: NEXT
F: RETURN
5080 PLOT 64,104: DRAW -10,10: DRAW -1,0: DRA
W 10,-10: FOR F=1 TO 3: CIRCLE 51,116,F: NEXT
F: RETURN
5090 INK 5: FOR F=1 TO 4: PLOT 67+F,79: DRAW
-20,-30: NEXT F
5092 INK 0: PRINT AT 16,5;" ": RETURN
5100 INK 5: FOR F=1 TO 4: PLOT 79+F,79: DRAW
20,-30: NEXT F
5102 INK 0: PRINT AT 16,12;"
5110 PRINT AT 20,0!"BAD LUCK! YOU’VE BEEN HAN
GED. THE ANSWER WAS ";B$
5120 GO TO 3010
7000 FOR L=5000 TO 5090 STEP 10: GO SUB L: NE
XT L
7050 INK 5: FOR F=1 TO 4: PLOT 79+F,79: DRAW
20,-30: NEXT F
7060 INK 0: PRINT AT 16,12;“
7080 FOR F=1 TO 3: FOR 1=1 TO 11: BEEP .02,1:
NEXT I: LET I=USR 3230: NEXT F
8000 PRINT INK 7; "■ ■ ■ | ■ HI ■ ■ ■
■ ■■■■■■■I I ■■■■■ ■■■ ■■■
266 Hangman
8010 FOR F=7 TO 0 STEP -1: FOR 1=17 TO 21: PR
INT AT 1,01 OVER lj INK F; "
BEEP .01,5: BEEP .01,10: NEX
T I: NEXT F
9000 PRINT AT 5,16; INK 3;"@ Paul Stanley"
9500 PAUSE 250: CLS : RETURN
267
Roots
You are about to see your infallible micro make an unbelievably simple
mistake—that even a four year old child would spot!
In the section of the program where you are asked to enter numbers
yourself, we have actually included an ABS function in LINE 670 to
help your computer out of its predicament! Computers are happiest in
Binary arithmetic but would probably settle for Hexadecimal as a
compromise—but if we humans insist that micros communicate with us
in the Decimal system then we have only ourselves to blame if the
computer seems to get it wrong occasionally.
10 REM ** ** ROOTS
@1933 MICHAEL BEWS
15 BORDER 3: INK 7: PAPER 1
20 POKE 23609,111
50 FOR X=1 TO 3: FOR Y=0 TO 7: READ a: POKE
USR CHR$ (143 + X)+Y,a: NEXT y: NEXT X
60 FOR X=1 TO 4: FOR Y=0 TO 7: READ a: POKE
USR CHR* <146+X)+Y,a: NEXT y: NEXT X
100 CLS : PRINT " ROOTS @1983 MICHAEL
BEWS "
110 PRINT INVERSE li"THIS PROGRAM CALCULATE
S ROOTS USING BOTH THE INTERNAL ’ A ’ FUN
CTION IN THE COMPUTER ROM ANDNEWTON/RAPHSON R
EITERATIVE APPROXIMATION.
115 PRINT INK 7; PAPER 2j FLASH 1;" WHEN
IS A ’5’ NOT A ’5’ ??
120 PRINT INVERSE 1}" THE PROGRAM WILL D
EM0N3TRATE0NE OF THE PROBLEMS FACED BY YOU
R COMPUTER WHEN IT TRIES TO
130 PRINT INVERSE l;“CONVERT THE RESULT OF
ITS BINARYSYSTEM CALCULATIONS INTO DECIMAL
FOR DISPLAY ON THE SCREEN.
140 PRINT INVERSE 1;"ALTHOUGH WE WOULD NEED
TO EMPLOYMACHINE CODE METHODS TO ACTUALLYSEE
THE ’BIT 1 DIFFERENCE BETWEENTWO SEEMINGLY ID
ENTICAL NUMBERS, WE CAN"; OVER 1;CHR9> 3iCHR$ 8
;CHR$ 3; INK 1; PAPER 7;"_"; OVER 05
268 Roots
150 PRINT INVERSE 1j" SHOW YOU THE ’IMPOSSI
ELE’ AS YOUR COMPUTER ’FAILS’ TO RECOGNISE
THE NUMBER FOR WHICH IT IS SEARCHING!
160 INPUT INK 7; PAPER 2;"PRESS < ENTER > “;
X *
170 CLS : PRINT "ROOTS @1983 MICHAEL
BEWS "
175 PRINT INVERSE 15" " i TAB 0;“ANY ROOT MAY
BE CALCULATED BY REITERATIVE APPROXIMATION
USING "
180 PRINT INVERSE 1;” ";TAE 0;" A =1 D
N + G*(R-1)F R£G^(R-1)
6“i TAB 0;
185 PLOT 56,128: DRAW INVERSE 1;6,0: PLOT 7
2,128: DRAW INVERSE i;52,0
187 PRINT INVERSE 1; " " ;TAB 0; "WHERE N=ORIG
INAL NUMBER R=ROOT NUMBER REQUI
RED G=ANY NUMBER
A=APPROXIMATION TO >3N PRODUCED B
Y THE FORMULA"
188 PRINT INVERSE 1i" ";TAB 0;”IF A<>G THEN
WE LET G=A AND REPEATEDLY APPLY THE FORM
ULA, MAKING G EQUAL TO THE PRECEDING VALUE
OF ’A’ UNTIL A = G. AT THIS POINT"iTAB 0i"
A = /)N" ; TAB 0;
190 INPUT INVERSE 1;"PRESS<ENTER> ";XS
192 CLS : PRINT "ROOTS @1983 MICHAEL
BEWS "
195 PRINT INVERSE 1i" ";TAB 0;" A =1 D
N + G*(R-1)F R£G~(R-1)
G “STAB 0;
196 PLOT 56,152: DRAW INVERSE 1;6,0: PLOT 7
2,152: DRAW INVERSE 1;52,0
200 PRINT INK 7; PAPER 2;" EXAMPLE TO
FIND BA 16
210 PRINT INVERSE 1 ; " ";TAB 0;"LET G=3 (A R
EASONABLE GUESS AS BA 16=«FAS YOU KNOW!)"
;TAB 0;
220 LET G=3: LET N=*16
225 GO SUB 230
227 GO TO 235
230 LET A=(N/G+G)/2: RETURN
Roots 269
235 PRINT PAPER 5; INK 0\ "G="iG>" GIVES A="
;a:tab 0;
240 PRINT INVERSE 1;"WE NOW LET G="5 A;TAB 0
;“ AND TRY THE FORMULA AGAIN
245 LET G=A: GO SUB 230
250 PRINT INK 0; PAPER 5;"G=" ;G5" GIVES A=“
;A;TAB 0!
260 IF A=G THEN GO TO 230
270 GO TO 245
230 PRINT INVERSE 1i" THEREFORE 416 =
";a;TAB 0;" ";tab 0;
285 PRINT INK 7; PAPER 2;“ YOUR COMPUTER SA
YS THAT £416=";Ai“ "
290 PRINT FLASH 1;AT 21,0;" LOOK AT THIS EX
AMPLE CAREFULLY "
300 INPUT PAPER 6? INK 1;"AND THEN PRESS <E
NTER > "!X$
310 PRINT INVERSE 1!AT 5,0;: FOR X=1 TO 16:
PRINT INVERSE 1;" ";TAB 0\: NEXT X: PRINT T
AB 31;“ "
320 PRINT INK 7; PAPER 2;AT 4,0!” EXA
MPLE TO FIND £425
330 PRINT INVERSE l!” “iTAB 0;“LET G=3 AGAI
N(£425=5 AS WE KNOW)"
340 LET G=3: LET N=25: GO SUB 230
350 PRINT PAPER 5; INK 0;"G=";G;" GIVES A="
;A;TAB 0;
360 PRINT INVERSE 1;"WE NOW LET G=";A;TAB 0
i " AND TRY THE FORMULA AGAIN
370 LET G=A: GO SUB 230
380 PRINT INK 0; PAPER 5;"G="5Gi " GIVES A=”
;A;TAB 0;
390 IF A=G THEN GO TO 400
395 GO TO 370
400 PRINT INVERSE 1;" THEREFORE 425 =
“iAiTAB 0;
402 PRINT INVERSE 1;TAB 14; FLASH i;"BUT“5
FLASH 0;TAB 0; •
405 PRINT INK 7; PAPER 2;“YOUR COMPUTER "i
FLASH 1;"FAILED"; FLASH 05" TO STOP ON THE FI
RST "i INK 0; PAPER 5!"G=5 GIVES A=5"i INK 7;
PAPER 2;" BECAUSE G DOES NOT EQUAL PRECISE
LY 5!!"
270 Roots
410 PRINT AT 21,0; FLASH 1 ; 11 ENTER" ; FLASH 0;
" ’R’ TO REPEAT THE EXAMPLES"
420 INPUT INK 7; PAPER lJ"OR < ENTER > TO TRY
YOUR OWN“;X*
430 IF X$= “R 11 OR X$="r" THEN GO TO 192
440 CLS : PRINT " ROOTS @1933 MICHAEL
BEWS "
500 PRINT AT 1,0;"ENTER NUMBER (N): “
505 INPUT INVERSE 1;">0 AND <1000000 "5N$
510 IF N$="" THEN GO TO 505
515 FOR X=1 TO LEN N$: IF N$(X)<"0" OR N¥(X)
>“9” THEN GO TO 505
520 NEXT X
530 LET N = VAL N$: IF N<.01 OR N>1000000 THEN
GO TO 505
540 PRINT INVERSE 1;AT 1,1S;N
550 PRINT AT 2,0;"ENTER NUMBER OF THE DESIRE
D ROOT"
560 INPUT INVERSE l;"ROOT <>1 AND <100) "iR
$
570 IF R$="" THEN GO TO 560
580 FOR X=1 TO LEN R$: IF R$(X)<"0" OR R$<X)
>"9" THEN GO TO 560
590 NEXT X
600 LET R=VAL R$: IF R<2 OR R>99 THEN GO TO
560
605 PRINT AT 3,5;": ROOT NUMBER = INVERSE
1 » R
610 LET G=2*(N A (1/R)): LET X=1
650 LET A=(N/GMR-i>+G#<R-1> )/R
660 PRINT AT 6,0;Xi"> A=";A
670 IF ABS (A-GX.0001 THEN GO TO 700
680 LET X=X+1.' LET G=A: GO TO 650
700 PRINT INVERSE 15 AT 8,0; "THE ";R;" ROOT
of ";n;" is ";tab 19;A;tab 0;
710 PRINT AT 13,0!"CHECK,USING COMPUTER ’ A ’F
UNCTION";" ";TAB 0;A;" a ";R;" = '^A'-R
720 PRINT INVERSE 1;AT 21,05" ENTER
’0’ TO QUIT
730 INPUT INVERSE l;"OR < ENTER > TO TRY AGAI
N " ; X*
740 IF X$="Q" OR X$="q" THEN STOP
750 GO TO 440
Roots 271
999 STOP
1000 DATA 31,16,16,16,144,80,32,0
1010 DATA 112, 14*4,32,64,240,0,0,0, 240, 16, 112,
16,240,0,0,0
1030 DATA 2,4,8,8,16,16,32,32,32,16,16,3,8,4,
2,0,64,32,16,16,8,8,4,4,4,3,3,16,16,32,64,0
272
Bulls and Cows
Choosing a four digit number, the computer will respond to your guesses
(or deductions, we hope) by displaying a bull when you get a correct digit
in the the right place, and a cow when a number you input also occurs in
the computers’ number, but not in the same place. You should note that
the computers number can have the same digit repeated.
You can choose the number of guesses you’re allowed, making it more
difficult for yourself as you get more practiced.
1 REM Bulls and Cows @ Robert Erskine
10 GO SUB 9000
20 GO SUB 8000
26 FOR x=l TO 4
100 RANDOMIZE : LET R-RND: INPUT "How many g
uesses do you want?";t
110 GO SUB 1000
120 CLS : PRINT "I have chosen a number": PA
USE 100
130 GO SUB 2000
135 FOR q=l TO t
140 INPUT “ENTER YOUR GUESS NOW (4 digits) "
I LINE g$: IF LEN g$< >4 THEN PRINT #lj FLASH
li“reinput correctly!!": PAUSE 60: GO TO 140
145 FOR f = l TO 4: IF CODE g$(-f)<48 OR CODE g
*(-f)>57 THEN PRINT #1; FLASH lj "Numbers only
: PAUSE 60: GO TO 140: NEXT f
150 GO SUB 200
160 GO SUB 3000
170 IF b1ack<4 THEN NEXT q
180 PAUSE 100: GO SUB 4000
190 PRINT AT 21,4!"PRESS ANY KEY TO RESTART"
: PAUSE 0: GO TO 100
200 LET black=0: LET white=0
205 DIM a(4): DIM h(4)
210 FOR x = l TO 4
215 LET a(x)=VAL (g*(x))
217 NEXT x
220 FOR x=l TO 4
230 IF a(x)=n < x) THEN LET b1ack=b1ack+1
Bulls and Cows 273
240 IF a(x)=n < x) THEN LET h<x)=l
250 NEXT x
260 FOR x=l TO 4
270 FOR y=l TO 4
280 IF a < x)=n(y) AND h(y)=0 THEN LET white-
White+l: LET h(y)=l: GO TO 310
290 NEXT y
310 NEXT x
320 PRINT g$;
330 RETURN
1000 DIM n(4): REM choose
1010 FOR x=l TO 4
1020 LET n (x 1=INT <RND*9)+1
1030 NEXT x
1040 RETURN
2000 BORDER 0: PAPER 1: INK 7: CLS
2010 PRINT "GUESSES BULLS COWS"
2020 PRINT
2030 RETURN
3000 IF black-0 THEN GO TO 3070
3010 LET + = 13
3020 FOR x = l TO black
3030 PRINT TAB <+)5 INK 05 “/9" 5
3040 BEEP .1,25
3050 LET -f=-f + l
3060 NEXT x
3070 IF white=0 THEN GO TO 3130
3080 LET +=22
3085 FOR x = 1 TO white
3090 PRINT INK 75 TAB <+);"£";
3100 BEEP .1,25
3110 LET +=++1
3120 NEXT x
3130 PRINT
3160 RETURN
4000 IF black<4 THEN GO TO 4030
4010 CLS : PRINT AT 4,05“You are correct, the
number " ,,, " I chose was “5
4020 GO TO 4040
4030 CLS : PRINT "That was not very good. The
, "number I chose was "5
4040 FOR x =1 TO 4
4050 PRINT n(x)5
274 Bulls and Cows
4060 NEXT x
4070 PRINT : PRINT : PRINT 5"and you guessed
4080 FOR x = l TO 4
4090 PRINT a < x) i
4100 NEXT x
4110 PRINT
4120 RETURN
8000 PRINT AT 1,8;“Bulls and Cows": PRINT
8010 PRINT "The object of Bulls and cows is",
"to guess a four digit number ",“chosen by th
e computer. After "/each guess the computer
will ","give you clues! each bull ", "indicate
s a correct digit in thecorrect position and
each cow ","indicates a correct digit in “,"t
he wrong position."
8020 PRINT AT 21,4;"Press any key to start"
8030 IF INKEY$=”" THEN GO TO 8030
8040 RETURN
9000 RESTORE : FOR x=USR "a" TO USR “b”+7
9010 READ n
9020 POKE x , n
9030 NEXT x
9040 DATA 0,2,3,255,126,126,66,66,0,0,3,255,1
26,126,66,66
9050 RETURN
275
Invaders
How could we write a Bumper Book of programs without including the
classic Invaders games? Well, here it is complete with shields and
Mothership and a screen full of the dreaded Aliens.
10 REM *** INVADERS - @1983
MICHAEL BEDS
20 DIM I(50)
30 GO TO 460
49 REM ******MAIN PROGRAM LOOP
50 GO SUB 70: GO SUB 220: GO TO 50
69 REM INVADER SHUFFLE ROUTINE
100 FOR X = U TO P: IF I(X+L*P)=U THEN NEXT X
: LET FX=U: FOR X=U TO 49: IF I(X)=U THEN NE
XT X: GO TO 900
120 IF FX=U THEN LET FX=0: GO TO 180
125 IF L + A >21 THEN GO TO 800
130 PRINT AT L+A,0j: IF Z=-U THEN PRINT ■
140 FOR X=U TO P: LET B*=I$: IF I(P*L+X)=U T
HEN LET B*="
150 PRINT B*i
160 NEXT X
180 LET L = L + U: IF L >Q THEN LET L=0: LET Z=-
Z: LET C=C+U: IF C=V THEN LET C=0: PRINT AT
A,0i" “;: LET
A = A + U.
190 IF <L=0 AND A >0) THEN PRINT AT 0,0;“
“iAT 0,INT (27*R
ND) i INK 2j G3>
200 RETURN
210 REM **KEYBOARD INPUT****
220 LET X*=INKEY$
230 IF X$=" H THEN RETURN
240 IF (CODE X*=ll OR X$="7“) THEN GO SUB 3
30: RETURN
245 BEEP .08,-40
250 IF X$<>"5" THEN GO TO 265
255 IF XP<U THEN RETURN
260 LET XP=XP-U: PRINT AT 20,XP;T$;:
RETURN
276 Invaders
265 IF X*<>"8" THEN 60 TO 280
270 IF XP >27 THEN RETURN
275 LET XP=XP+U: PRINT AT 20,XP;T*;: RETURN
280 IF CODE X*<>8 THEN GO TO 290
235 PRINT AT 20,XP;” LET XP=XP-V: IF
XP<0 THEN LET XP=0
286 PRINT AT 20,XP;T*;: RETURN
290 IF CODE X*<>9 THEN RETURN
292 PRINT AT 20,XP;“ “j: LET XP=XP+V: IF
XP>27 THEN LET XP=27
295 PRINT AT 20,XP;T*;: RETURN
320 REM **R0CKET FIRE******
330 LET XN= <XP-U + W)*T*. LET XS«XN-W*INT (XN/W
): IF (XSOT AND XSOT + T) THEN RETURN
332 IF RR<1 THEN PRINT AT 21,15; FLASH 1 I "
TAKE COVER!! 0 "J FLASH 0: RETURN
334 BEEP .12,35
335 LET RR=RR-1: PRINT AT 21,30;“ ";AT 21,3
0; RR;
340 PRINT AT 19,XP + U; "H *;
350 FOR R=18 TO 0 STEP -U: IF SCREEN* <R,XP+
U) =" “ THEN NEXT R: PRINT AT 19,XP+U;“ ";AT
0, XP+U; u ; AT 21, w; FLASH l;"MISS! B ; FLASH 0:
BEEP .2,-15: FOR X=U TO 80: NEXT X: LET SC=S
C-W: PRINT AT 21,6;“ “;AT 21,6?SC;TAB W;“
“;AT 0,XP+U;" “: RETURN
360 FOR X=1 TO 3: PRINT AT R,XP+U;M*;: BEEP
. 02,30-(3*X) : FOR Y=1 TO 8: NEXT Y: PRINT AT
R,XP + U;“ '*;: for y=u to v: next y: next x: pr
int AT R,XP;“ “;AT 19,xp+U;“ LET SC=SC+
200-(180*S6N R): PRINT AT 21,6;SC;
370 IF R>=A THEN LET I < P* < R-A ) + U+INT ((XP+1
)/4))=1
380 RETURN
459 STOP
460 CLS : BORDER 1: PRINT PAPER 1; INK 7\“
INVADERS @1982 M.BEWS”: PRINT AT 0,1J
OVER 1|"je_" ; OVER
0
462 PRINT AT 11,55“I NITIALISING"
465 FOR X=0 TO 7: READ A,B: POKE USR “S"+X,A
: POKE USR “7“+X,B: NEXT X: LET I*=“S'/“ + "
470 FOR X=0 TO 7: READ A,B: POKE USR “4"+X,A
Invaders 277
: POKE USR "£“+X,B: NEXT X: LET T$=" " + ",45" + "
480 FOR X=0 TO 7: READ A,B: POKE USR “C"+X,A
! POKE USR " <5" + X, B: NEXT X: FOR X=0 TO 7: REA
D A, B: POKE USR "5"+X,A: POKE USR "/ r “+X,B: NE
XT X: FOR X=0 TO 7: READ A: POKE USR “5“+X,A:
NEXT X: LET G%="CD£FS"
490 FOR X=0 TO 7: READ A,B,C: POKE USR 'V'+X
,a: poke usr “A"+x,b: poke usr "Z"+x,c: next
x: LET 'D%=“JAL “ + "
495 FOR X=0 TO 6: POKE USR "5"+X,24: NEXT X:
POKE USR "5"+7,0: LET R*="H"
497 FOR X=0 TO 7: READ A: POKE USR "tf"+X, A:
NEXT X: LET
500 LET RR=60
510 LET HS=0: LET TS=0
550 PRINT AT 1,0;"USE YOUR ROCKET LAUNCHER "
J T*i “ TO WIPE OUT THE INVADERS ";I3>;
560 PRINT " ANDTO DAMAGE THE COMMAND SHIP WH
ICH ARRIVES LATER "JG*5
570 PRINT : PRINT “YOU CAN NOT FIRE WHILE YO
U ARE BEHIND A LASER SHIELD “;D$
590 PRINT : PRINT “USE LEFT AND RIGHT CURSOR
ARROWSTO MOVE YOUR LAUNCHER (with CAPS SHIFT
to move -faster). USE THE ’UP’ ARROW TO FI
RE ROCKETS."
600 PRINT TAB 3;"YOU HAVE ONLY ";RR+lJ" ROCK
ETS. "
610 PRINT "**#***####**###*"
620 PRINT “SCORE 20 FOR EACH KNOCKED OUT I
NVADER AND 200 FOR EACH DIRECT HIT ON
THE COMMAND SHIP."
700 PRINT “LOSE 10 POINTS FOR EACH MISS!!"
710 PRINT : PRINT " IF INVADERS GET CLOSE TO
YOU THEY WILL BECOME INDESTRUCTABLE!"
720 PRINT TAB 2} FLASH 1;"<PRESS ANY KEY TO
START GAME >"; FLASH 0
722 IF INKEY3>=“" THEN GO TO 722 m
725 LET A=0: LET C=0: LET FX=0: LET L=0: LET
P=7: L.ET <3=6: LET T=2: LET U=l: LET V=5: LET
W=10: LET SC=0: LET XP=0: LET Z=1
730 BORDER 5: PAPER 5: CLS : FOR X=0 TO 6: P
RINT AT X,2;: FOR Y=1 TO 7: PRINT INK l|I*j:
278 Invaders
NEXT y: next X
750 PRINT AT 19,0;: FOR X=1 TO 6: PRINT INK
3;0$;: NEXT X: PRINT INK 3; “LK U i
760 PRINT AT 20,0)T*;
770 PRINT AT 21,0J"SCORE:";SC;AT 21,15;"R0CK
ET RESERVE: M j RR;
790 60 TO 50
799 REM ***END OF LOST GAME
800 PRINT AT 5,0; PAPER 2J INK 7;"Y0UR PLANE
T HAS BEEN TAKEN OVER.
YOU SCORED " JSC}" USING "S60-RR; ,, RO
CKETS"!: GO TO 910
900 PRINT AT 5,0! PAPER l! INK 7;"YOU HAVE W
IPED OUT THE INVADERS, ";AT 7,0; "SCORED ”;SC; "
AND USED ";60-RR;" ROCKETS")AT 9,1; FLASH 15
“CONGRATULATIONS”; FLASH 0
910 IF SC>HS THEN LET HS=SC
915 LET TS=TS+SC
920 PRINT AT 11,12; PAPER 6i INK 2j"LAST SCO
RE ";SC;AT 12,12;"HIGHEST SCORE "JHSJAT 13
,12)“TOTAL SCORE ";TS)AT 15,2) FLASH l;"PRE
SS ANY KEY FOR NEXT GAME"
930 LET XS=INKEY*: IF X$«"“ THEN GO TO 930
940 CLS : PRINT AT 11,125 INK 2; PAPER 6; FL
ASH 1;“STANDBY"; FLASH 0: FOR X=5 TO 1 STEP -
l: PRINT AT 17,155X5: FOR Y=1 TO 80: NEXT Y:
NEXT X: FOR X=1 TO 49: LET I(X)=0: NEXT X: LE
T SC=0: LET RR=60: LET XP=0: GO TO 725
1000 REM ****USR DEF GRAPHICS
1030 DATA 60,60,140,49,115,206,51,204,63,252,
111,246,193,131,192,3
1040 DATA 27,224,31,240,26,88,62,124,255,255,
255,255,85,170,42,84
1050 DATA 0,0,0,0,7,224,31,248,248,31,127,254
, 0 , 0 , 0,0
1060 DATA 0,0,63,252,240,15,191,253,0,0,255,2
55,127,254,0,0
1070 DATA 126,255,0,195,255,129,255,60
1080 DATA 255,255,255,126,0,126,255,255,255,1
26,0,126,255,255,255,126,0,126,255,255,255,0,
0,0
1090 DATA 0,82,24,124,62,24,74,0
2000 LET X$=INKEY$: IF X*-“" THEN GO TO 2000
Invaders
279
2010 PRINT CODE X*i" GO TO 2000
3000 INPUT A,B,C*: PRINT AT 18,30J” “!AT A,B!
C*i: IF SCREEN* <4,4)="0" THEN PRINT AT 18,3
0;i
3010 GO TO 3000
280
Mushroom Invasion
All right. So you’ve dealt with the worst that the galaxies can throw up.
The Space Invaders, the asteroid belts, the nightmare timewarp tunnels,
the vampire cats — you’ve seen it all haven’t you? Don’t you believe it!
Things can only get worse. This time around you are faced with a
mindless, soulless, heartless fungus... the invasion of the mushrooms.
It’s all over for Earth. The mushrooms already cover half the globe and
they’re moving in for the final kill. You are the commander of the only
surviving security cruiser, and your laser cannons are running low. Wait
until you see the whites of their undersides and make every shot count. If
they hit your ship you’re finished.
1 CLS
5 PAPER 0: BORDER 0
8
10 GO SUB 750
20 GO SUB 2060
30 GO SUB 2100
40 PRINT BRIGHT 1; INK 1;AT x,y5 u nUR"
45 IF y>27 THEN LET y=27
50 IF INKEY*-"1" THEN GO SUB 4000
60 IF INKEY*=“5“ THEN LET y=y-l
70 IF INKEY*-“5" THEN PRINT AT x,y+3i"
80 IF INKEY*="8** THEN LET y=y+l
90 IF INKEY*-"8" THEN PRINT AT x,y-35" "
100 IF INKEY*-" 1" THEN GO SUB 4000
105 IF y<1 THEN LET y=l
110 PRINT BRIGHT 15 INK 1;AT x,y \"nUR"
120 IF ATTR (x-1,y)=2 OR ATTR (x-l,y+l)=2 OR
ATTR < x-1,y+ 2)=2 THEN GO SUB 5000
130 60 SUB 3000
140 PRINT AT x,y! BRIGHT lj INK 15 "HUR*
150 GO TO 40
750 FOR m-0 TO 7: READ x: POKE USR u ti*+m,xl
NEXT m
760 FOR tn-0 TO 7: READ x: POKE USR “(/ u +m,x:
NEXT ro
770 FOR m-0 TO 7: READ x: POKE USR "/9"+m,x:
NEXT m
Mushroom Invasion 281
780 FOR m=0 TO 7: READ x: POKE USR , 'S“+m,x:
NEXT m
995 FOR n=0 TO 7: READ x: POKE USR "F ,, + n,x:
NEXT n
996 FOR n=0 TO 7: READ x: POKE USR “C“+n,x:
NEXT n
1000 RETURN
1020 DATA BIN 00000011,BIN 00000111,BIN 00001
111,BIN 10101010,BIN 10101010,BIN 00001111,BI
N 00000111,BIN 00000011
1030 DATA BIN 11111111,BIN 11111111,BIN 11111
111,BIN 10101010,BIN 10101010,BIN 11111111,BI
N 11111111,BIN 11111111
1040 DATA BIN 11000000,BIN 11100000,BIN 11110
000,BIN 01010101,BIN 01010101,BIN 111 10000,BI
N 11100000,BIN 11000000
1045 DATA BIN 00011000,BIN 01111110,BIN 11111
111, BIN 11111111,BIN 00111100,BIN 00011000,B
IN 00011000,BIN 00011000
2030 DATA 24,24,24,24,24,24,24,24
2040 DATA BIN 10011001,BIN 01011010,BIN 01111
110,BIN 00111100,BIN 00111100,BIN 01111110,BI
N 01011010,BIN 10011001
2050 RETURN
2060 LET x=0: LET y=l: LET W-0: LET C=*0
2070 RETURN
2100 PRINT INK 65" THE EARTH IS BEING ATTACK
ED BV A FLEET OF MINDLESS BUT DEADLY MUSHROO
MS. AS ALWAYS, YOU ARE ITSSOLE DEFENDER.THE LE
FT AND RIGHTCURSOR KEYS WILL SHIFT YOU ABOUT&c
THE 1 KEY FIRES YOUR LASER.THE END IS INEVIT
ABLE:IF YOU’RE HIT YOU’RE DEAD. BUT TRY AND N
OTCH UP A MEAN SCORE BEFORE YOU GO."
2102 PRINT TAB 9; INVERSE 1} INK 5;“ANY KEY T
O PLAY“
2105 FOR k = i TO 128: BEEP .05,.5: PRINT INK
2; “S “i : NEXT k
2110 PAUSE 0: CLS
2120 RETURN
3000 LET W-INT <RND#29>
3001 LET M=20
3005 LET V=RND*3
3010 PRINT AT M,Wj INK 2 1 u S u l PRINT AT M,W+V
282 Mushroom Invasion
i INK 2; “S m
3012 BEEP .05,RND*30
3013 INK 2: INK 1
3013 POKE 23692,-1: PRINT AT 21,0’’
3018 PRINT AT x,y; INK 1 \*n<JR u
3020 RETURN
4000 PRINT BRIGHT lj INK 6JAT x+1,y+1!"A": R
EM “F" is graphics F
4010 IF ATTR < x + 2,y + 1)=2 THEN GO SUB 6000
4020 BEEP .1,RND*12
4060 RETURN
5010 PRINT AT x,y; BRIGHT li INK 6 \ U CCC*
5013 BEEP .5,-40: BEEP .5,6: BEEP .2,10: BEEP
.05,-35
5020 CLS
5030 FOR v=l TO 71 BEEP .05,10-v: PRINT BRIG
HT 1J INK 6;TAB 4;"YOU HAVE BEEN DESTROYED.
YOUR SCORE IS " i C; ** . ANOTHER GAME?
ANY KEY TO START": NEXT V
5070 PAUSE 0: CLS
5080 RETURN
6000 PRINT AT x+2,y+1j INK 6;“C“
6001 LET C=C+1
6010 RETURN
Countabout
283
Kids and computers just don’t mix. Not if it’s your computer that is.
They take up far too much valuable hacking time. However it has to be
conceded that micros do have a role in the pedagogic process, and so it is
not without some reluctance that we have included a selection of
educational programs, of which this is one. This is for the very small,
and has been designed to keep them quiet while you have an algorithm to
work on, whilst at the same time teaching them the basics of counting.
The program sets a series of counting problems from the numbers one to
nine. You know, count the ships, flowers, cats, houses or whatever and
— if the answer is correct—reward the little angels with ships moving,
cats smiling, telephones ringing or the like.
10 REN COUNTABOUT.H.WALWYN
15 LET X=0: GO SUB 9000
17 LET ZS=“
20 PAPER 5: BORDER 5: INK 0: CLS : PRINT "C
OUNTABOUT"
30 PRINT : PRINT “A counting game -for child
ren aged 2-5"
40 GO SUB 1000
50 PRINT : PRINT “PRESS ANY KEY TO START PR
OGRAM"
60 LET K=RND: IF INKEY$=““ THEN GO TO 60
70 CLS
80 PRINT AT 0,0i FLASH 11“PLEASE PRESS ANY
KEY"
90 LET K=RND: IF INKEY$="“ THEN GO TO 90
100 CLS
110 LET Q=INT <(RND*9)+1)
120 LET K=INT <<RND*5)+1>
130 LET J=4: FOR 1 = 1 TO <3
140 IF 1=4 OR 1=7 THEN LET J=4:
150 GO SUB L(I)
160 PRINT OVER 1;TAB J;
170 IF X=1 THEN GO TO 200
180 GO SUB L(K+9)
190 GO TO 210
200 GO SUB L(K+14)
284 Countabout
210 LET J=J+10: NEXT I
220 IF X=1 THEN LET X=0: 60 TO 360
240 PRINT AT 0,0! INK l;"H O W MANY '* i N
* i ” ? "
250 LET A*=INKEY$: IF A$="” THEN GO TO 250
260 IF CODE A$<49 OR CODE A*>57 THEN GO TO
250
270 PRINT ^ INK 1;TAB 18;A$: FOR L=1 TO 100:
NEXT L
280 IF UAL A$=Q THEN CLS : GO TO 320
290 IF UAL A«=(Q+1) OR UAL AS=(Q-1) THEN GO
TO 330
300 BEEP .6,.5: BEEP .6,-2: PRINT TAB 2; FLA
SH l; BRIGHT l; PAPER 4; INK 7;“N 0,W R 0 N G
A N S W E R I u
310 GO SUB 5500: GO TO 230
320 LET X=l: GO TO 130
330 IF UAL A*=0 THEN GO TO 300
340 BEEP .2,.5: PRINT INK 2; “ U E R Y N E A
R L Y ! 11
350 GO SUB 5500: GO TO 230
360 GO SUB 5600: PRINT AT 2,9; BRIGHT 15 FLA
SH l; PAPER 0; INK 7;“C 0 R R E C T“
370 IF Q=1 THEN PRINT Qj” “;N*<1 TO (LEN
N$-2)): GO TO 390
380 PRINT Q; " " ; N$
390 FOR F=1 TO 300: NEXT F: GO SUB 2000: GO
TO 80
1000 REM INSTRUCTIONS
1010 PRINT : PRINT “There is no need to use t
he"
1020 PRINT “’ENTER KEY’ in this program."
1030 PRINT : PRINT "Once the child knows wher
e the numbers -from 1 to 9 are on the keyboa
rd, " 5
1050 PRINT "you can sit back and let the “5
1060 PRINT "computer do a bit o-f teaching!
1100 RETURN
2000 PRINT AT 0,0! INK 2;TAB 20
2010 GO TO D(Q)
2100 PRINT B",," 5": RETURN
2200 PRINT “ CED“ : PRINT "CEF": PRINT "GEE"'. R
ETURN
Countabout 285
2300
2400
2300
2600
2700
2800
2900
5000
5010
5020
5500
5600
PRINT " C£D U ,, U £J",, n 6£P":
PRINT * _ ,"4 B ",,
PRINT “/(££" , , "iS£D u , , u <5££ u i
PRINT "C£D" ,, “L£D",, a 6£P u i
PRINT “ _" , , " /?" , , “ A " :
PRINT “C£D“ ,, "L£J“ ,, "6£P U :
PRINT "C£D U ,,“6£J“, , "G£F ":
PRINT AT 4,0;: RETURN
PRINT AT 10,0;: RETURN
PRINT AT 16,0;: RETURN
FOR L=1 TO 500: NEXT L
PRINT AT 0,0; ••
RETURN
RETURN
RETURN
RETURN
RETURN
RETURN
RETURN
5610 FOR L=1 TO 3
5615 PRINT "
5620 NEXT L
5625 RETURN
6000 INK 0: LET N*="H 0 U S E S“: REM HOUSE D
RAWING
6001 PRINT OVER 1? INK 0;" -;Z*( TO 28);"
TO 26) ; u " ; Z$ ( TO 25);"fl
S";Z*< TO 24 );"B s B";
6002 RETURN
6100 REM CATS
6101 INK 2: LET N$=“C ATS"
6110 PRINT OVER 1; INK 2;" <2 P" ; Z* < TO 27);
“ Mil" ;Z*< TO 27) ; "=/Vi»?=" ;Z$< TO 26);
6120 PRINT OVER 1; INK 2;" GUMP "J Z$ < TO 27);
“ llll";z$< to 27) ; ■* ;
6130 RETURN
6200 REM TELEPHONE
6210 INK 3: LET N$=“T ELEPHONES"
6220 PRINT OVER 1 i "<?■■■/““ 5 Z* ( TO 27 ) J " IU “
iZ*l TO 27)i" (o)"!Z$( TO 28)i"
6230 RETURN
6300 REM BOATS
6310 INK l: LET N*="S HIPS"
6320 PRINT OVER 1;" ";" "; Z %( TO 29); INK 1
; “_P RR U ;z*( TO 27) ; "/v: : return
6400 REI-. LOWER
6410 INK 4: LET N$="F LOWERS"
6420 PRINT OVER 1;"/V1 0";Z$< TO 28)5 INK 45"
7 “; Z* < TO 29);“ 7 ";Z*< TO 29);" U "5: RETU
RN
286 Countabout
7000 REM HOUSE CORRECT
7005 BEEP .5,10-1
7010 PRINT OVER IS" " i Z* ( TO 28)5"
jz*< to 26);" < 3 Mc/uc/ap “ ;z*< to 25 ) u ;z*
( TO 25); “MMSFFMM" i: RETURN
7100 BEEP .5,10-1: PRINT OVER li M P <J";Z*(
TO 28);" HK " ;Z*< TO 27) i u =H6F0= 11 ; Z* ( TO 27)5
TO 28) 5 "■■■■" i Z* < TO 28)5" " i :
RETURN
7200 REM TELEPHONE CORRECT
7210 PRINT OVER 1 i " RING" ; Z% ( TO 28)i"<?lll
P-\ Z*< TO 27)! u imn “;Z$( TO 28) 5 “<0)”;z*< TO
29);- '*;
7220 BEEP .5,1.9: PAUSE 5: BEEP .5,1.9: PAUSE
30: RETURN
7300 REM BOATS
7305 BEEP .5,10-1
7310 PRINT OVER is" 11 i " " l Z% < TO 29); INK 1
; “rr” i z*< to 27) ; "A»: ::::<?"; : return
7320 PRINT “ "iZ*( TO 27)iZ*( TO 27I;Z$
( TO 27);: RETURN
7400 REM FLOWER
7405 BEEP .5,10-1
7410 PRINT OVER 1S "";Z*( TO 29) J" T "\Z%(
TO 29)5“ F "JZ$< TO 29);“ “;: RETURN
8999 RETURN
9000 REM INITIALISE ARRAYS,GRAPHICS
9010 RESTORE : DIM L(19): FOR F=1 TO 19: READ
L(F): NEXT F: DATA 5000,5000,5000,5010,5010,
5010,5020,5020,5020
9020 DATA 6000,6100,6200,6300,6400,7000,7100,
7200,7300,7400
9030 DIM D<9): FOR F=1 TO 9: READ D < F) : NEXT
F: DATA 2100,2200,2300,2400,2500,2600,2700,28
00,2900
9040 RESTORE 9900: FOR F=0 TO 7: READ A,B
9050 POKE USR ("A")+ F,A
9060 POKE USR ("B")+F,128
9070 POKE USR ("C")+ F,B
9080 NEXT F
9090 FOR F =0 TO 7: READ A: POKE USR ("D")+ F,A
9100 POKE USR <"E“)+ F,0: IF F = 3 THEN POKE US
R <“E“)+F,255
9110 READ A: POKE USR ("F")+F,A
Countabout 287
9120
9130
9140
9150
9160
9170
9180
9190
9200
9210
9220
9230
9240
9250
9260
9270
9280
9290
9400
9490
9500
9510
9520
9530
9540
9550
9900
READ A: POKE USR ( " G " ) + F, A
NEXT F
FOR F=0 TO 7
POKE USR ( “ I " )+ F,128
POKE USR ( M H“)+ F, 0
POKE USR <“J")+F,16
READ A: POKE USR (‘'K")+F,A
POKE USR < " L " ) + F , 8
POKE USR ( M M")+ F,1
POKE USR <"N")+F,(2 A (7-F))-1
POKE USR ( M 0'')+F, 255-( (2 A (F) )-1 )
POKE USR <"P")+F,255-<<2 A (7-F))-1)
POKE USR ("G") +F, ( (2~(F) )-1)
POKE USR ( “ R " ) + F , 0
READ A: POKE USR ("S")+F,A
POKE USR <"T")+F,16
NEXT F
FOR F=0 TO 7: READ A: POKE USR <“U")+F,A
NEXT F
POKE USR ( "H") ,255
POKE USR ( " I " ) ,255
POKE USR <"J“)+3,240
POKE USR ("L")+3,15
POKE USR ( “ M“),255
POKE USR ("N"),255
POKE USF} ( "R" ) , 255: POKE USR <"R“) +1,255
DATA 1,0,2,0,4,0,8,3,16,4,32,8,64,8,128,
9910 DATA 0,16,8,0,16,8,0,32,4,192,192,3,32,0
,0,16,0,0,16,0,0,16,0,0
9920 DATA 0,213,0,171,0,213,15,171,8,213,8,17
1,8,213,3,171
9930 DATA 0,60,126,126,126,126,60,0
9999 RETURN
Robert Erskine & Humphrey Walwyn with Paul Stanley and Michael Bews
Bumper Book of Programs for the Sinclair ZX Spectrum £4.95
Robert Erskine & Humphrey Walwyn with Paul Stanley and Michael Bews
Bumper Book of Programs for the BBC Micro £4.95
Robert Erskine & Humphrey Walwyn with Paul Stanley and Michael Bews
Bumper Book of Progams for the Dragon 32 £4.95
Robert Erskine & Humphrey Walwyn with Paul Stanley and Michael Bews
Bumper Book of Programs for the Oric 1 £4.95
Ian Adamson
The Definitive Companion to the Oric 1 £4.95
Geoff Wheelwright
The Definitive Companion to the BBC Micro £4.95
Jean Frost
Instant Arcade Games for the Sinclair ZX Spectrum £3.95
Jean Frost
Instant Arcade Games for the BBC Micro £3.95
Jean Frost
Instant Arcade Games for the Dragon 32 £3.95
J. J. Clessa
Micropuzzles £2.95
required and fill in the torn
Nan
(Block letters pie
Send to Pan Books (CS Department), PO Box 40, Basingstoke, Har
pyjt
60 programs for your
Sinclair ZX Spectrum
A massive software library for the price of
a single cassette. Explosive games,
dynamic graphics and invaluable utilities,
this specially commissioned collection
takes BASIC to the limits and beyond.
Four of the country’s best-selling software
writers have pooled their talents to bury
programming cliches and exploit your
micro’s potential to the full.
Whether you are a games player or a more
serious user, here’s the book to make
your micro work for you.
0330 28260 3
U.K. £4.95